An array is a group of similar types of variables. PHP provides function array()
to create a PHP array.
PHP Array
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.
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:
yes you can use array_column function for printing inner array values
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.
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.
Q4778
R14940
B6992
You can write a tutorial support around of n-dimensional array function converter.
Thanks for the clear explanation.