可能是AU3数组过分严紧.数组的索引只能为数字.还要先定义长度..
先说定义长度.当然是可以用关键字ReDim来重新改变数组长度.但还是很麻烦.
数组个人认为他是做为一个变量的组合.如果她不能变就没有太多义意
再说索引只能为数字.先看以下例子.Dim $Arr[3]
$Arr[0] = "A"
$Arr[2] = "B"
MsgBox(0, 0, UBound($Arr))
不管真实数组里有几个..UBound()都返回先定义的长度Dim $Arr[3]
$Arr[0] = "A"
$Arr[3] = "B"
如果例子上$Arr索引超过或等于定义的长度就会出错..
这个还说明数组索引只能在定义的长度范围内..
下面我们来分析一个很长见的程序..
一个班级学生分组
表A存分组.如A组B组, 表的结构为 组的ID=Gid 还有组的名称 GroupName
表B存学生名字等信息 表的结构为 ID , 学生姓名Name 组的ID=Gid
由于表A在添加和删除过程中不可能在保持期ID 为 1.2.3.4.....有序下去
如果要像PHP一样操作列出学生信息是不可能_SQLite_Query(-1, "SELECT Gid, GroupName FROM Group", $hQuery)
While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK
$GroupArr[$aRow[0]] = $aRow[1]
WEnd
Dim $AllInfo = ""
_SQLite_Query(-1, "SELECT id, Name, Gid FROM Info", $hQuery)
While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK
$AllInfo &= $aRow[0] &"|"& $aRow[1] &"|"& $GroupArr[$aRow[2]] & @CRLF
WEnd
MsgBox(0, 0, $AllInfo)
现在的数组模式要么就要以学生表B中的Gid一个一个的去查询表A的组名.老是查询数据库那是不好的.
要么就要用两个数组.一个存Gid.一个存组名称.通过_ArraySearch得到Gid索引举出组名称
所以在写程序过程中很麻烦..而PHP的数组索引还可以是字符串..
真希望AU3数组能改变一下 |