Multi-Dimensional Arrays


There are times when you will want to include arrays within your array or represent something more two-dimensional than a simple list of data. Fortunately, PHP supports this functionality with easy-to-use multi-dimensional arrays.

Since the value of an array element can be anything, it can also be another array. This is how multi-dimensional arrays are created.

 <?php   $bikes = array();   $bikes["Tourmeister"] = array("name" => "Grande Tour Meister",                                 "engine_cc" => 1100,                                 "price" =>12999);   $bikes["Slasher1000"] = array("name" => "Slasher XYZ 1000",                                 "engine_cc" => 998,                                 "price" => 11450);   $bikes["OffRoadster"] = array("name" => "Off-Roadster",                                 "engine_cc" => 550,                                 "price" => "4295"); ?> 

You can access the elements in a multi-dimensional array by putting pairs of square brackets next to each other in code:

 <?php   $names = array_keys($bikes);   foreach ($names as $name)   {     print $bikes[$name] . " costs: " . $bikes[$name]["price"]           . "<br/>\n";   } ?> 

Another helpful way to create multi-dimensional arrays would be to use the array_fill method. This creates an array for you where all the (integer-keyed) values have the same initial value. If we wanted to create a 3x3 matrix, we could use array_fill method, which takes three arguments: the starting index to use, the number of elements to create, and the value to put in each element. By having this value returned by array_fill, we can quickly create a two-dimensional array full of them:

 <?php    $threex3matrix = array_fill(0, 3, array_fill(0, 3, 1));    foreach($threex3matrix as $row)    {      echo "{$row[0]} {$row[1]} {$row[2]}<br/>\n";    } ?> 

The output would be

 1 1 1 1 1 1 1 1 1 

The count method can optionally be given one more parameter, COUNT_RECURSIVE, which is how we count all of the elements in multi-dimensional arrays. This parameter value tells the function to count the number of values in the arrays contained within the counted array.

 <?php   $colors = array("non-colors" => array("white", "black"),                    "primary" => array("blue", "yellow", "red"),                    "happy" => array("pink", "orange"));   $elems = count($colors, COUNT_RECURSIVE);   //   // The following prints out 10 (3 top-level items in   // $colors containing a total of 7 sub-items)   //   echo "\$colors has a total of $elems elements<br/>\n"; ?> 




Core Web Application Development With PHP And MYSQL
Core Web Application Development with PHP and MySQL
ISBN: 0131867164
EAN: 2147483647
Year: 2005
Pages: 255

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net