Define mutable array
// 2 dimensional array of arrays of Ints var arr = [[Int]]()
OR:
// 2 dimensional array of arrays of Ints var arr: [[Int]] = []
OR if you need an array of predefined size (as mentioned by @0x7fffffff in comments):
// 2 dimensional array of arrays of Ints set to 0. Arrays size is 10x5 var arr = Array(count: 3, repeatedValue: Array(count: 2, repeatedValue: 0)) // ...and for Swift 3+: var arr = Array(repeating: Array(repeating: 0, count: 2), count: 3)
Change element at position
arr[0][1] = 18
OR
let myVar = 18 arr[0][1] = myVar
Change sub array
arr[1] = [123, 456, 789]
OR
arr[0] += 234
OR
arr[0] += [345, 678]
If you had 3×2 array of 0(zeros) before these changes, now you have:
[ [0, 0, 234, 345, 678], // 5 elements! [123, 456, 789], [0, 0] ]
So be aware that sub arrays are mutable and you can redefine initial array that represented matrix.
Examine size/bounds before access
let a = 0 let b = 1 if arr.count > a && arr[a].count > b { println(arr[a][b]) }
Remarks: Same markup rules for 3 and N dimensional arrays.