if you want an easy different way then there are gamecaches, but, those are slower then a snail.
you can also have a limited sized 2d array by doing this
set Unit[ 8*Y + X] = GetTriggerUnit()
in this example, it is a 2d array that can have a maximum of 1023 parent Y each with a storage space of 8.
if you want a 3d array then you can do set Int[ 100*Z + 10*Y +X] = 0 in this one you can have 80 data storage that have 10 y storage units each with 10 X storage units.
but despite the fact that you can use other things hashtable's are still the best way to do nd arrays in Warcraft3(as long as n > 1)
Because 1 they really aren't that slow, for most of the uses they will be used for.
and 2 they can store more data then a 2d array based off of Wacraft3's 1d arrays.