PHP flerdimensionella arrayer

I de tidigare kapitlen i denna kurs har vi redan lärt oss att en array är en enkel lista av nummer/nyckel-värde par.

Men ibland vill du lagra värden med en eller flera nycklar.

Det är möjligt att lagra data med flerdimensionella arrayer.

PHP - flerdimensionella arrayer

Flerdimensionella arrayer är arrayer som innehåller en eller flera arrayer.

PHP kan förstå två, tre, fyra eller fem nivåer av flerdimensionella arrayer, men över tre nivåer djupa arrayer är svåra att hantera för de flesta.

Kommentar:Arrayens dimensioner indikerar antalet index du behöver välja elementet

  • För en tvådimensionell array behöver du två index för att välja element
  • För en tredimensionell array behöver du tre index för att välja element

PHP - tvådimensionell array

En tvådimensionell array är en array av arrayer (en tredimensionell array är en array av tvådimensionella arrayer).

Låt oss först titta på följande tabell:

Märke Lager Försäljning
Volvo 33 20
BMW 17 15
Saab 5 2
Land Rover 15 11

Vi kan lagra data i en tvådimensionell array som i tabellen ovan, så här:

$cars = array
  (
  array("Volvo", 22, 18),
  array("BMW", 15, 13),
  array("Saab", 5, 2),
  array("Land Rover",17,15)
  );

Nu innehåller denna tvådimensionella array fyra arrayer och har två index (index): rad och kolumn.

För att komma åt element i $cars-arrayen måste vi använda två index (rad och kolumn):

Exempel

<?php
echo $cars[0][0].": Lager:".$cars[0][1].", Försäljning:".$cars[0][2].".<br>";
echo $cars[1][0].": Lager:".$cars[1][1].", Försäljning:".$cars[1][2].".<br>";
echo $cars[2][0].": Lager:".$cars[2][1].", Försäljning:".$cars[2][2].".<br>";
echo $cars[3][0].": Lager:".$cars[3][1].", Försäljning:".$cars[3][2].".<br>";
?>

Kör exempel

Vi kan också använda en annan for-loop inom en for-loop för att få element från $cars-arrayen (vi behöver fortfarande två index):

Exempel

<?php
for ($row = 0; $row < 4; $row++) {
  echo "<p><b>Radnummer $row</b></p>";
  echo "<ul>";
  for ($col = 0; $col < 3; $col++) {
    echo "<li>".$cars[$row][$col]."</li>";
  }
  echo "</ul>";
}
?>

Kör exempel