PHP Multidimensionale Arrays

In de eerdere hoofdstukken van deze handleiding hebben we al geleerd dat een array een eenvoudige lijst van getal/waarde paren is.

Maar soms wil je waarden opslaan met meer dan één sleutel.

Je kunt gegevens opslaan met meerdimensionale arrays.

PHP - Meerdimensionale array

Meerdimensionale arrays zijn arrays die een of meerdere arrays bevatten.

PHP begrijpt tweedimensionale, driedimensionale, vierdimensionale of vijfdimensionale arrays, en zelfs meer. Maar arrays die dieper dan drie niveaus zijn, zijn voor de meeste mensen moeilijk te beheren.

Opmerking:Het dimensienummer van een array geeft aan hoeveel indices u nodig hebt om een element te kiezen.

  • Voor een tweedimensionale array hebt u twee indices nodig om een element te kiezen
  • Voor een driedimensionale array hebt u drie indices nodig om een element te kiezen

PHP - Tweedimensionale array

Een tweedimensionale array is een array van arrays (een driedimensionale array is een array van arrays van arrays).

Laten we eerst de onderstaande tabel bekijken:

Merken Voorraad Verkoop
Volvo 33 20
BMW 17 15
Saab 5 2
Land Rover 15 11

We kunnen gegevens van de tabel opslaan in een tweedimensionale array, zoals hieronder:

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

Nu bevat deze tweedimensionale array vier arrays en heeft het twee indices (index): rij en kolom.

Om toegang te krijgen tot de elementen van het $cars-array, moeten we twee indices (rij en kolom) gebruiken:

Voorbeeld

<?php
echo $cars[0][0].": Voorraad:".$cars[0][1].", Verkoop:".$cars[0][2].".<br>";
echo $cars[1][0].": Voorraad:".$cars[1][1].", Verkoop:".$cars[1][2].".<br>";
echo $cars[2][0].": Voorraad:".$cars[2][1].", Verkoop:".$cars[2][2].".<br>";
echo $cars[3][0].": Voorraad:".$cars[3][1].", Verkoop:".$cars[3][2].".<br>";
?>

Lopende voorbeeld

We kunnen ook een andere for-lus gebruiken in een for-lus om de elementen van het $cars-array te verkrijgen (we moeten nog steeds twee indices gebruiken):

Voorbeeld

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

Lopende voorbeeld