Tuesday 14 August 2018

PHP Array – Indexed, Associative and Multidimensional

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

0 comments:

Post a Comment