So what you stated there, Dim BrickData(2) , produces a
single dimension array. The figure 2 represents the length of the array + 1 in dark basic terminology, counting from 0, 1, 2. What you do with index zero is entirely up to you.
To make it a multidimensioned array, you need an additional parameter in your declaration. So if your level is 10 rows by 10 columns, you would write Dim BrickData(10,10); (or BrickData(9,9) as you would in most programming languages)
You could then loop through the array as I have done here:
For row = 0 to 9
For column = 0 to 9
index = (row * 10) + column
Make Object Cube index, 50
Position Object index, 25 + (column * 50) , 0, 25 +( row * 50)
Texture Object index, BrickData(row,column).Texture
Next row
Next column
This is pretty easy to understand after some practice; but the assumed limitation of this approach is that the array permits just one game level, and all game levels are the same size. Assumed because this depends on how the array is used.
You can store more than one piece of information in each array entry using a User Defined Type, as shown in the help files. I have shown in the snippet how I obtained the texture number from the brick data, using the texture field name at the end.