With 1-dimensional arrays it's cleaner to use the command
array insert at bottom:
rem user defined type
type TMyArray
ItemName as String
ItemNum as Integer
endtype
rem define the array
dim MyArray() as TMyArray
rem insert 10 indexes
for i = 1 to 10
array insert at bottom MyArray()
MyArray(b).ItemName = "My Item is: "+str$(a)
MyArray(b).ItemNum = a
next i
With 2-dimensional arrays you'll have to get dirty and use work-arounds, such as re-defining the array, even if it already exists (basically what Sergey is doing).
TheComet