Multidimensional arrays in PHP
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 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);
?>
Output
Array ( [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 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);
?>
Output
Display 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 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);
?>
Output
Array ( [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 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";
}
?>
Output
95 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.