采用dictionary构建二维数组是因为asp中的数组不像php中的数组可以采用“键值对”的方式组织数组,而只能以“索引(数字)/值”的方式组织数组。
采用“键值对”的方式组织数组在程序中有很多好处。
在网上看到大量转载的一篇构建二维数组的代码,自己做了一下优化,大家比较一下,据此扩展应该也可以构建三维四维数组。
以下是摘抄的代码:
Set a1 = CreateObject("scripting.dictionary")
For i=1 To 9
Set a2 = CreateObject("scripting.dictionary")
For j=1 To 12
a2.add CStr("aaa"&j),CStr("b"&i&"b"&j*10)
Next
a1.add ("bbb"&i),a2
Set a2=Nothing
Next
For i=1 To 9
For j=1 To 12
acs=a1("bbb"&i)("aaa"&j)
response.write acs&" "
Next
response.write "<Br>"
Next
response.end
Set a1=Nothing
以下是本人优化后的代码:
Set a1 = CreateObject("scripting.dictionary")
For i=1 To 9
Set a2 = CreateObject("scripting.dictionary")
For j=1 To 12
a2.add CStr("aaa"&j),CStr("b"&i&"b"&j*10)
Next
a1.add ("bbb"&i),a2
Set a2=Nothing
Next
ak=a1.keys
bi=a1.items
For i=0 To a1.count-1
a1k = bi(i).keys
b1k = bi(i).items
For j=0 To bi(i).count-1
acs = b1k(j)
response.write acs&" "
Next
response.write "<Br>"
Next
response.end
Set a1=Nothing
优化后的好处是在采用dictionary对象保存的数据后要构建二维数组可以不用知道数组的大小,任意更改数组大小都可以调用。
需要注意的地方是:
Set a1= CreateObject("scripting.dictionary")
a1.add "aaa","bbb"
键值都要加双引号