| PHP Programming Arrays | The if Structure |
Arrays are sets of data that can be defined in a PHP Script. Arrays can contain other arrays inside of them without any restriction (hence building multidimensional arrays). Arrays can be referred to as tables or hashes.
Arrays can be created in two ways. The first involves using the function array. The second involves using square brackets.
In thearray function method, you create an array in the scheme of:
$foo=bar()
For example, to set up the array to make the keys sequential numbers (Example: "0, 1, 2, 3"), you use:
$foobar=array($foo,$bar);
This would produce the array like this:
$foobar[0]=$foo;$foobar[1]=$bar;
It is also possible to define the key value:
$foobar=array('foo'=>$foo,'bar'=>$bar);
This would set the array like this:
$foobar['foo']=$foo;$foobar['bar']=$bar;
The square brackets method allows you to set up by directly setting the values. For example, to make$foobar[1] = $foo, all you need to do is:
$foobar[1]=$foo;
The same applies for setting the key value:
$foobar['foo']=$foo;
<?php$array=array("name"=>"Toyota","type"=>"Celica","colour"=>"black","manufactured"=>"1991");$array2=array("Toyota","Celica","black","1991");$array3=array("name"=>"Toyota","Celica","colour"=>"black","1991");print_r($array);print_r($array2);print_r($array3);?>
Array ( [name] => Toyota [type] => Celica [colour] => black [manufactured] => 1991 ) Array ( [0] => Toyota [1] => Celica [2] => black [3] => 1991 ) Array ( [name] => Toyota [0] => Celica [colour] => black [1] => 1991 )
The following example will output the identical text asExample #1:
<?php$array['name']="Toyota";$array['type']="Celica";$array['colour']="black";$array['manufactured']="1991";$array2[]="Toyota";$array2[]="Celica";$array2[]="black";$array2[]="1991";$array3['name']="Toyota";$array3[]="Celica";$array3['colour']="black";$array3[]="1991";print_r($array);print_r($array2);print_r($array3);?>
<?phpecho"Manufacturer:{$array['name']}\n";echo"Brand: <b>{$array2['1']}</b><br />\n";echo"Colour: <b>".$array3['colour']."</b><br />\n";echo"Year Manufactured: <b>".$array3[1]."</b><br />\n"?>
Manufacturer: <b>Toyota</b><br /> Brand: <b>Celica</b><br /> Colour: <b>black</b><br /> Year Manufactured: <b>1991</b><br />
Manufacturer:Toyota Brand:Celica Colour:black Year Manufactured:1991
Elements in an array can also be an array, allowing for multidimensional arrays.An example, in accordance with the motoring examples above, is:
<?php$cars=array("car1"=>array("make"=>"Toyota","colour"=>"Green","year"=>1999,"engine_cc"=>1998),"car2"=>array("make"=>"BMW","colour"=>"RED","year"=>2005,"engine_cc"=>2400),"car3"=>array("make"=>"Renault","colour"=>"White","year"=>1993,"engine_cc"=>1395),);?>
In this example, if you were to use:
<?phpecho"$cars['car1']['make']<br>";echo"$cars['car3']['engine_cc']";?>
The output would be:
Toyota
1395
There are dozens of array manipulation functions. Before implementing your own, make sure it doesn't already exist as a PHP function inArray functions (PHP manual entry).
Examples:
$array=array("name"=>"Toyota","type"=>"Celica","colour"=>"black","manufactured"=>"1991");array_multisort($array,SORT_ASC);var_dump($array);// array(4) { ["manufactured"]=> string(4) "1991" ["type"]=> string(6) "Celica" ["name"]=> string(6) "Toyota" ["colour"]=> string(5) "black" }// The upper cases are sorted before the lowercases.arsort($array);var_dump($array);// array(4) { ["colour"]=> string(5) "black" ["name"]=> string(6) "Toyota" ["type"]=> string(6) "Celica" ["manufactured"]=> string(4) "1991" }asort($array);var_dump($array);// array(4) { ["manufactured"]=> string(4) "1991" ["type"]=> string(6) "Celica" ["name"]=> string(6) "Toyota" ["colour"]=> string(5) "black" }sort($array);var_dump($array);// array(4) { [0]=> string(4) "1991" [1]=> string(6) "Celica" [2]=> string(6) "Toyota" [3]=> string(5) "black" }
In various circumstances, you will need to visit every array element and perform a task upon it.
The simplest and the most widely used method for this is theforeach operator that loops through the whole array and works individually with each key/item couple. If a more complex way of traversing the array is needed, the following functions operate using the internal array pointer:
<?php// Using an array's iterator to print its values in reverse order$my_array=array('a','b','c');end($my_array);while($i=current($my_array)){echo$i."\n";prev($my_array);}?>
Another possibility is defining a function and applying it to each array element via one of the following functions:
| PHP Programming Arrays | The if Structure |