我的数组中有多少维数或得到最后一个维度
答
Ubound(MySingleDimensionalArray, 2) ' Number of Array Elements
Ubound(MyMultiDimensionalArray, 1) ' Number of Columns
Ubound(MyMultiDimensionalArray, 2) ' Number of Rows
答
function ArrayDimensions(theArray)
dim Result,test
Result = 0
if isarray(theArray) then
on error resume next
do
test = -2
test = ubound(theArray,result+1)
if test > -2 then result = result + 1
loop until test=-2
on error goto 0
end if
ArrayDimensions = Result
end function
+0
有趣,它获得了正确的维度!但是如何从未知维度的数组中获取值,如何遍历所有“数组单元格”?如果维度已知,则语法是Response.Write(myArr(1,2,3,4))! – armen 2013-04-18 07:52:05
答
类似的方法来feihtthief的回答这里我想这是你想要的,而不是特定的尺寸大小。
Function NumDimensions(arr)
Dim dimensions : dimensions = 0
On Error Resume Next
Do While Err.number = 0
dimensions = dimensions + 1
UBound arr, dimensions
Loop
On Error Goto 0
NumDimensions = dimensions - 1
End Function
然后调用它像这样:
Dim test(9, 5, 4, 3, 9, 1, 3, 5)
NumDimensions(test)
会给你的价值8
这是一个有点蹩脚,但它会做你的要求。
如果MySingleDimensionalArray是一维数组,那么你的第一行会出错。 – jammus 2009-08-27 16:04:26