PHP Array – Indexed, Associative and Multidimensional

Filed Under: PHP

An array is a group of similar types of variables. PHP provides function array() to create a PHP array.

PHP Array

php array indexed associative multidimensional arrays
There are three types of arrays in PHP.

  1. Indexed arrays – Array with numeric indexes.
  2. Associative arrays – Array with key-value pairs, its similar to Map in java.
  3. Multidimensional arrays – An array of arrays.

PHP Indexed arrays

There are two ways to create indexed arrays.
– first way to use array() function without any index, index are assigned automatically starting from 0.
– second way to manually assign index and create the array.

PHP count() function is used to get the length of an array. We can use for loop to loop through all the values of an indexed array.

Below code shows both the ways to create an indexed array and loop through them in PHP.


<?php
$colors = array("Red","Green","Blue");

$colors1[0] = "Red";
$colors1[1] = "Green";

$length = count($colors);
echo "colors array length=" . $length; // prints "colors array length=3"
echo "<br>";
echo "colors1 array length=" . count($colors1); // prints "colors1 array length=2"

//looping an indexed array
for($i=0; $i<$length; $i++){
	echo $colors[$i];
	echo "<br>";
}
?>

PHP Associative Arrays

Associative arrays uses named keys for values and we can create them in similar way like indexed arrays. foreach is used to loop through an associative array.


<?php

$colors = array("0"=>"Red","1"=>"Green","2"=>"Blue");

echo "0th element of array is " . $colors["0"];
echo "<br>";
//looping
foreach ($colors as $key=>$value){
	echo "Key=".$key." value=".$value;
	echo "<br>";
}
?> 

output of above PHP script is:


0th element of array is Red
Key=0 value=Red
Key=1 value=Green
Key=2 value=Blue

Multidimensional Array in PHP

A multidimensional array is an array of arrays. We can create two-dimensional, three-dimensional and n-dimensional arrays using array function.

Each array within the multidimensional array can be either indexed array or associative array. We can use for loop for looping through indexed array and foreach for looping through associative array.

In below example, I am showing two-dimensional indexed arrays and mixture of indexed and associative array in multidimensional array.

We can use print_r() or var_dump() function to print the human readable form of the array.


<?php

//Indexed two-dimensional array
$cars = array(
				array("Honda Accord", "V6", 30000),
				array("Toyota Camry", "LE", 24000),
				array("Nissan Altima", "V1"),
			);

//printing array information			
print_r($cars);
echo "<br>";
var_dump($cars);
echo "<br>";
//looping through two-dimensional indexed array

for($i=0;$i<count($cars);$i++){
	for($j=0;$j<count($cars[$i]);$j++){
		echo $cars[$i][$j] . " ";
	}
	echo "<br>";
}
echo "<br><br>";

//Indexed Associative two-dimensional array
$cars = array(
				array("Name" => "Honda Accord", "Model" => "V6", "Cost" => 30000),
				array("Name" => "Toyota Camry", "Model" => "LE", "Cost" => 24000),
				array("Name" => "Nissan Altima", "Model" => "V1"),
			);

//printing array information			
print_r($cars);
echo "<br>";
var_dump($cars);
echo "<br>";

//looping through two-dimensional indexed associative array

for($i=0;$i<count($cars);$i++){
	$c=0;
	foreach($cars[$i] as $key=>$value){
		$c++;
		echo $key."=".$value;
		if($c<count($cars[$i])) echo ",";
	}
	echo "<br>";
}
?>

The output of above PHP script is:


Array ( [0] => Array ( [0] => Honda Accord [1] => V6 [2] => 30000 ) [1] => Array ( [0] => Toyota Camry [1] => LE [2] => 24000 ) [2] => Array ( [0] => Nissan Altima [1] => V1 ) ) 
array(3) { [0]=> array(3) { [0]=> string(12) "Honda Accord" [1]=> string(2) "V6" [2]=> int(30000) } [1]=> array(3) { [0]=> string(12) "Toyota Camry" [1]=> string(2) "LE" [2]=> int(24000) } [2]=> array(2) { [0]=> string(13) "Nissan Altima" [1]=> string(2) "V1" } } 
Honda Accord V6 30000 
Toyota Camry LE 24000 
Nissan Altima V1 


Array ( [0] => Array ( [Name] => Honda Accord [Model] => V6 [Cost] => 30000 ) [1] => Array ( [Name] => Toyota Camry [Model] => LE [Cost] => 24000 ) [2] => Array ( [Name] => Nissan Altima [Model] => V1 ) ) 
array(3) { [0]=> array(3) { ["Name"]=> string(12) "Honda Accord" ["Model"]=> string(2) "V6" ["Cost"]=> int(30000) } [1]=> array(3) { ["Name"]=> string(12) "Toyota Camry" ["Model"]=> string(2) "LE" ["Cost"]=> int(24000) } [2]=> array(2) { ["Name"]=> string(13) "Nissan Altima" ["Model"]=> string(2) "V1" } } 
Name=Honda Accord,Model=V6,Cost=30000
Name=Toyota Camry,Model=LE,Cost=24000
Name=Nissan Altima,Model=V1

In next posts, we will look into some common array functions.

Earlier articles for PHP tutorial:

  1. PHP Tutorial for Beginners – PHP Syntax, Comments, Variables and Scope
  2. PHP Operators – Arithmetic, Comparison, Logical, Bitwise Operators
  3. PHP if-else, Switch Case and Shorthand Ternary operator

Comments

  1. developer says:

    yes you can use array_column function for printing inner array values

  2. manjunath says:

    Hi All. Basically I am a C developer and new to php. So I would like to know is there any way to implement two dimensional array where I can assign and display elements like below.

    #include
    int main() {
    int arr[3][3];
    int i, j;
    printf(“Read elements from user: “);
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    scanf("%d", &arr[i][j]);
    printf("Read elements are: ");
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    printf("%d", arr[i][j]);
    return 0;
    }

    Thanks in advance.

  3. Manjunath Gibbs says:

    Hi All. Basically I am a C developer and new to php. So I would like to know is there any way to implement two dimensional array where I can assign and display elements like below.

    #include
    int main() {
    int arr[3][3];
    int i, j;
    printf(“Read elements from user: “);
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    scanf("%d", &arr[i][j]);
    printf("Read elements are: ");
    for(i=0;i<3;i++)
    for(j=0;j<3;j++)
    printf("%d", arr[i][j]);
    return 0;
    }

    Thanks in advance.

  4. Lypeshoussy says:

    Q4778
    R14940
    B6992

    1. MinhQuy says:

      You can write a tutorial support around of n-dimensional array function converter.

  5. Amit says:

    Thanks for the clear explanation.

Leave a Reply

Your email address will not be published. Required fields are marked *

close
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages