In this PHP tutorial, you shall learn about Two-dimensional Arrays, how to created 2D arrays, access elements of 2D arrays, and traverse the inner arrays of a 2D array, with example programs.

Multi-dimensional Arrays in PHP

Multi-dimensional Arrays are the arrays in which one or more elements of the array could be arrays.

The number of dimensions depends on the how deep the elements, of arrays, are arrays.

For example, if you take a One-dimensional array, the array contains elements but no arrays.

</>
Copy
array(52, 41, 89, 63)

For Two-dimensional array, the array contains elements in which one or more elements of it are arrays. In total, the arrays are two-level deep.

</>
Copy
array(
  array(7, 8, 9),
  array(4, 5, 6),
  array(1, 2, 3)
)

Similarly, for Three-dimensional array, the outer array contains arrays as elements. These second level arrays, again contain arrays as elements. In total, three levels deep.

</>
Copy
array(
  array(
    array(1, 0, 9),
    array(0, 5, 6),
    array(1, 0, 3)
  ),
  array(
    array(0, 4, 6),
    array(0, 0, 1),
    array(1, 2, 7)
  ),
)

For N-dimensional array, the depth of arrays would be N.

Access N-dimensional Arrays

To access an N-dimensional array, we need N indexes to access an element.

The syntax to access an element in N-dimensional array would be as following.

</>
Copy
$array[index_1][index_2][index_3]..[index_N]

One-Dimensional Arrays

An example for one-dimensional array in PHP is

</>
Copy
array(52, 41, 89, 63)

As the number of dimensions is only one, we need only one index to access elements of it.

</>
Copy
$array1D[index_1]

1. One-dimensional array with numbers

In the following example, we will create a one-dimensional array, and access its elements using index.

PHP Program

</>
Copy
<?php
$array1D = array(52, 41, 89, 63);

echo $array1D[0];
echo "<br>";
echo $array1D[2];
?>

Output

PHP - Access One-dimensional Array Elements using Index

2. Iterate over Elements of 1-D Array using foreach

In the following example, we will create One-dimensional array, and print its elements using foreach statement.

PHP Program

</>
Copy
<?php
$array1D = array(52, 41, 89, 63);

foreach ($array1D as $element) {
    echo $element;
    echo "<br>";
}
?>

Output

PHP - One-Dimensional Array

Two-Dimensional Arrays

An example for three-dimensional array in PHP is

</>
Copy
array(
    array(7, 8, 9),
    array(4, 5, 6),
    array(1, 2, 3)
);

As the number of dimensions is two, we need only one index to access elements of it.

</>
Copy
$array2D[index_1][index_2]

1. Two-dimensional array with numbers

In the following example, we will create a two-dimensional array, and access the elements using index.

PHP Program

</>
Copy
<?php
$array2D = array(
    array(7, 8, 9),
    array(4, 5, 6),
    array(1, 2, 3)
);

echo $array2D[0][1];
echo "<br>";
echo $array2D[2][1];
?>

Output

PHP - Access 2D array using index

2. Iterate over elements of 2-D Array using foreach

In the following example, we will create a two-dimensional array, and print its elements using nested foreach.

PHP Program

</>
Copy
<?php
$array2D = array(
    array(7, 8, 9),
    array(4, 5, 6),
    array(1, 2, 3)
);

foreach ($array2D as $array1D) {
    foreach ($array1D as $element) {
        echo $element;
        echo " ";
    }
    echo "<br>";
}
?>

Output

PHP - Two-Dimensional Array

Three-Dimensional Arrays

An example for three-dimensional array is

</>
Copy
array(
  array(
    array(1, 0, 9),
    array(0, 5, 6),
    array(1, 0, 3)
  ),
  array(
    array(0, 4, 6),
    array(0, 0, 1),
    array(1, 2, 7)
  ),
)

As the number of dimensions is three, we need three index to access elements of it.

</>
Copy
$array3D[index_1][index_2][index_3]

1. Three-dimensional array with numbers

In the following example, we will create a three-dimensional array, and access the elements using index.

PHP Program

</>
Copy
<?php
$array3D = array(
    array(
        array(1, 0, 9),
        array(0, 5, 6),
        array(1, 0, 3)
    ),
    array(
        array(0, 4, 6),
        array(0, 0, 1),
        array(1, 2, 7)
    ),
);

echo $array3D[0][1][1];
echo "<br>";
echo $array3D[1][2][2];
?>

Output

2. Iterate over elements of 3-D Array using foreach

In the following example, we will create a three-dimensional array, and print its elements using nested foreach.

PHP Program

</>
Copy
<?php
$array3D = array(
    array(
        array(1, 0, 9),
        array(0, 5, 6),
        array(1, 0, 3)
    ),
    array(
        array(0, 4, 6),
        array(0, 0, 1),
        array(1, 2, 7)
    ),
);

foreach ($array3D as $array2D) {
    foreach ($array2D as $array1D) {
        foreach ($array1D as $element) {
            echo $element;
            echo " ";
        }
        echo "<br>";
    }
    echo "<br>";
}
?>

Output

PHP - Three-Dimensional Array

N-Dimensional Arrays

We can access or traverse through the elements of N-dimensional array in the same way as that of how we have done for 1D, 2D and 3D arrays.

Conclusion

In this PHP Tutorial, we learned how to create Multi-dimensional arrays, how to access the elements of Multi-dimensional arrays, and how to traverse through all the elements of Multi-dimensional arrays using nested foreach statement.