In short... Not really.
Try out this code:
dim b(10,10)
print array count(b(0,0))
wait key
end
It prints out "120", right? Why the weird result, you may ask? Well... first, one needs to recognize that when you call this:
dim b(10)
that creates an array of 11 elements (one element at 0, all the way through and including 10). When you call this:
dim b(10)
print array count(b)
that prints out "10", even though it has 11 elements, because that's how numbering conventions go in DBPro. So, when you say this:
dim b(10,10)
that creates an array of 11 by 11 elements, 11*11=121, and since zero is *kind of* excluded, you subtract one, giving you 121.
In java, you would say something like this:
Integer[][] a = new Integer[20][12]();
which would literally create 20 arrays of 12 integers. That's not true in DBPro, an array declared by this:
dim arr(a,b,c,d)
would return an array count of ((a+1)*(b+1)*(c+1)*(d+1)-1)
conversely, you could call this:
dim arr(10,10)
for n=0 to 120
arr(n)=rnd(100)
next n
print arr(5,5)
...weird stuff going on there.
So, that's what I mean when I say basically: No. You're much better off storing it as a separate variable whenever you declare or resize the array. You can get the total size of the array, compressed into one dimension, but there's no way I know of to get the size of each dimension separately.