PHP Arrays – Indexed, Associative and Multidimensional Arrays
There are three types of arrays in PHP.
Indexed arrays – Array with numeric indexes.
Associative arrays – Array with key-value pairs, its similar to Map in java.
Multidimensional arrays – An array of arrays.
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>";
}
?>
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 Arrays
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