PHP Multidimensional Arrays
PHP - Multidimensional Arrays
A multidimensional array is an array containing one or more arrays.
PHP supports multidimensional arrays that are two, three, four, five, or more levels deep. However, arrays more than three levels deep are hard to manage for most people.
PHP - Two-dimensional Arrays
A two-dimensional array is an array of arrays (a three-dimensional array is an array of arrays of arrays).
Take a look at the following table:
| Name | Stock | Sold |
|---|---|---|
| Volvo | 22 | 18 |
| BMW | 15 | 13 |
| Saab | 5 | 2 |
| Land Rover | 17 | 15 |
We can store the data from the table above in a two-dimensional array, like this:
$cars = array (
array("Volvo", 22, 18),
array("BMW", 15, 13),
array("Saab", 5, 2),
array("Land Rover", 17, 15)
);
Now the two-dimensional $cars array contains four arrays, and it has two indices: row and column.
To access to the elements of the $cars array we must point to the two indices (row and column):
Example
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
Try it Yourself »
The dimension of an array indicates the number of indices you need to select an element.
- For a two-dimensional array you need two indices to select an element
- For a three-dimensional array you need three indices to select an element
PHP - Looping Through Multidimensional Arrays
To loop through a multidemensional array, use a for
loop or a
foreach loop.
Here, we use a for loop inside another
for loop to get the elements of the
$cars array (we still have to point to the two indices):
Example
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
Try it Yourself »
Here, we use a foreach loop inside another
foreach loop to get the elements of the
$cars array.
Here we put the result in an HTML table:
Example
echo "<table>";
echo "<tr><th>Brand</th><th>Stock</th><th>Sold</th></tr>";
foreach ($cars as $row) {
echo "<tr>";
foreach ($row as $cell) {
echo "<td>" . $cell . "</td>";
}
echo "</tr>";
}
echo "</table>";
Try it Yourself »
Complete PHP Array Reference
For a complete reference of all array functions, go to our complete PHP Array Reference.
The reference contains a brief description, and examples of use, for each function!