Multidimensional arrays in PHP
Last Updated :
11 Jul, 2025
Multi-dimensional arrays in PHP are arrays that store other arrays as their elements. Each dimension adds complexity, requiring multiple indices to access elements. Common forms include two-dimensional arrays (like tables) and three-dimensional arrays, useful for organizing complex, structured data.
Dimensions
Dimensions of multidimensional array indicates the number of indices needed to select an element. For a two dimensional array two indices to select an element.
Two dimensional array
It is the simplest form of a multidimensional array. It can be created using nested array. These type of arrays can be used to store any type of elements, but the index is always a number. By default, the index starts with zero.
Syntax:
array (
array (elements...),
array (elements...),
...
)

Example: In this example we creates a two-dimensional array containing names and locations. The print_r() function is used to display the structure and contents of the array, showing the nested arrays and their values.
php
<?php
// PHP program to create
// multidimensional array
// Creating multidimensional
// array
$myarray = array(
// Default key for each will
// start from 0
array("Ankit", "Ram", "Shyam"),
array("Unnao", "Trichy", "Kanpur")
);
// Display the array information
print_r($myarray);
?>
OutputArray
(
[0] => Array
(
[0] => Ankit
[1] => Ram
[2] => Shyam
)
[1] => Array
(
[0] => Unnao
[1] => Trichy
[2] => Kanpur
)
)
Two dimensional associative array
Al associative array is similar to indexed array but instead of linear storage (indexed storage), every value can be assigned with a user-defined key of string type.
Example: In this example we creates a two-dimensional associative array to store students' marks for various subjects. The print_r() function displays the array, showing each student's name as a key with subject-marks pairs.
php
<?php
// PHP program to creating two
// dimensional associative array
$marks = array(
// Ankit will act as key
"Ankit" => array(
// Subject and marks are
// the key value pair
"C" => 95,
"DCO" => 85,
"FOL" => 74,
),
// Ram will act as key
"Ram" => array(
// Subject and marks are
// the key value pair
"C" => 78,
"DCO" => 98,
"FOL" => 46,
),
// Anoop will act as key
"Anoop" => array(
// Subject and marks are
// the key value pair
"C" => 88,
"DCO" => 46,
"FOL" => 99,
),
);
echo "Display Marks: \n";
print_r($marks);
?>
OutputDisplay Marks:
Array
(
[Ankit] => Array
(
[C] => 95
[DCO] => 85
[FOL] => 74
)
[Ram] => Array
(
[C] => 78
[DCO] => 98
[FOL] => 46
)
[Anoop] => Array
(
[C] => 88
[DCO] => 46
[FOL] => 99
)
)
Three Dimensional Array
It is the form of multidimensional array. Initialization in Three-Dimensional array is same as that of Two-dimensional arrays. The difference is as the number of dimension increases so the number of nested braces will also increase.
Syntax:
array (
array (
array (elements...),
array (elements...),
...
),
array (
array (elements...),
array (elements...),
...
),
...
)

Example: In this example we creates a three-dimensional array with nested arrays containing numeric values. The print_r() function is used to display the structure and contents of the entire array.
php
<?php
// PHP program to creating three
// dimensional array
// Create three nested array
$myarray = array(
array(
array(1, 2),
array(3, 4),
),
array(
array(5, 6),
array(7, 8),
),
);
// Display the array information
print_r($myarray);
?>
OutputArray
(
[0] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 3
[1] => 4
)
)
[1] => Array
(
[0] => Array
(
[0] => 5
[1] => 6
)
[1] => Array
(
[0] => 7
[1] => 8
)
)
)
Accessing multidimensional array elements
There are mainly two ways to access multidimensional array elements in PHP.
- Elements can be accessed using dimensions as array_name['first dimension']['second dimension'].
- Elements can be accessed using for loop.
- Elements can be accessed using for each loop.
Example: In this example we creates a multi-dimensional associative array to store students' marks by subject. It displays specific marks and iterates through the array using a foreach loop to print values.
php
<?php
// PHP code to create
// multidimensional array
// Creating multidimensional
// associative array
$marks = array(
// Ankit will act as key
"Ankit" => array(
// Subject and marks are
// the key value pair
"C" => 95,
"DCO" => 85,
"FOL" => 74,
),
// Ram will act as key
"Ram" => array(
// Subject and marks are
// the key value pair
"C" => 78,
"DCO" => 98,
"FOL" => 46,
),
// Anoop will act as key
"Anoop" => array(
// Subject and marks are
// the key value pair
"C" => 88,
"DCO" => 46,
"FOL" => 99,
),
);
// Accessing the array element
// using dimensions
// It will display the marks of
// Ankit in C subject
echo $marks['Ankit']['C'] . "\n";
// Accessing array elements using for each loop
foreach($marks as $mark) {
echo $mark['C']. " ".$mark['DCO']." ".$mark['FOL']."\n";
}
?>
Output95
95 85 74
78 98 46
88 46 99
PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.