You are correct, my match 3 game uses 13 1D arrays and only 12 2D arrays. But I like code that is less verbose when it can be done.
Here is how to make 2D arrays using a function.
# declare arrays
var q1 = []
var q2 = []
var boardTile = []
var boardItem = []
func array_2d(a,rows,columns):
for r in range(rows):
a.append([]) # add a row
a[r].resize(columns) # add columns
func _ready():
q1.resize(10) # allocate arrays
q2.resize(25)
array_2d(boardTile,10,15)
array_2d(boardItem,10,15)
q2[23] = 77
boardTile[9][9] = 1
print("q1[5]=",q1[5])
print("q2[23]=",q2[23])
print("boardTile[9][9]=",boardTile[9][9])
print("boardItem[5][12]=",boardItem[5][12])
boardItem[5][12] = 4
print("boardItem[5][12]=",boardItem[5][12])