How can you create a multidimensional array in php?


In the previous pages, we have described arrays that are a single list of key/value pairs.

However, sometimes you want to store values with more than one key. For this, we have 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.

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 - Two-dimensional Arrays

A two-dimensional array is an array of arrays (a three-dimensional array is an array of arrays of arrays).

First, take a look at the following table:

NameStockSold
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 get access to the elements of the $cars array we must point to the two indices (row and column):

Example

<?php
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 »

We can also put 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

<?php
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 »


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!



Multi-dimensional arrays are such type of arrays which stores an another array at each index instead of single element. In other words, define multi-dimensional arrays as array of arrays. As the name suggests, every element in this array can be an array and they can also hold other sub-arrays within. Arrays or sub-arrays in multidimensional arrays can be accessed using multiple dimensions.

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...),
    ...
)

How can you create a multidimensional array in php?

Example:

<?php

$myarray = array(

    array("Ankit", "Ram", "Shyam"),

    array("Unnao", "Trichy", "Kanpur")

);

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:

<?php

$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,

    ),

);

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...),
        ...
    ),
    ...
)

How can you create a multidimensional array in php?

Example:

<?php

$myarray = array(

    array(

        array(1, 2),

        array(3, 4),

    ),

    array(

        array(5, 6),

        array(7, 8),

    ),

);

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:

<?php

$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,

    ),

);

echo $marks['Ankit']['C'] . "\n"

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.


How do you create a multidimensional array?

Creating Multidimensional Arrays You can create a multidimensional array by creating a 2-D matrix first, and then extending it. For example, first define a 3-by-3 matrix as the first page in a 3-D array. Now add a second page. To do this, assign another 3-by-3 matrix to the index value 2 in the third dimension.

What are multidimensional array in PHP explain with example?

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.

Where is multidimensional array in PHP?

Multidimensional array search using array_search() method: The array_search() is an inbuilt function which searches for a given value related to the given array column/key. This function only returns the key index instead of a search path.

How get key of multidimensional array in PHP?

Retrieving Values: We can retrieve the value of multidimensional array using the following method:.
Using key: We can use key of the associative array to directly retrieve the data value. ... .
Using foreach loop: We can use foreach loop to retrieve value of each key associated inside the multidimensional associative array..