Wielowymiarowe tablice PHP

W poprzednich rozdziałach tego przewodnika już wiemy, że tablica to prosta lista par klucz-wartość.

Czasami chcesz przechowywać wartości pod wieloma kluczami.

Można przechowywać dane za pomocą wielowymiarowych tablic.

PHP - wielowymiarowa tablica

Wielowymiarowa tablica to tablica zawierająca jedną lub więcej tablic.

PHP rozumie dwuwymiarowe, trójwymiarowe, czterowymiarowe, pięciowymiarowe i więcej poziomów wielowymiarowych tablic. Jednak tablice głębsze niż trójwymiarowe są trudne do zarządzania dla większości ludzi.

Komentarz:Wymiar tablicy wskazuje, ile indeksów musisz wybrać, aby wybrać element.

  • Dla dwuwymiarowej tablicy potrzebujesz dwóch indeksów, aby wybrać element
  • Dla trójwymiarowej tablicy potrzebujesz trzech indeksów, aby wybrać element

PHP - dwuwymiarowa tablica

Dwuwymiarowa tablica to tablica tablic (trójwymiarowa tablica to tablica tablic tablic).

Pozwólcie, że najpierw spojrzymy na poniższą tabelę:

Marka Stan magazynowy Sprzedaż
Volvo 33 20
BMW 17 15
Saab 5 2
Land Rover 15 11

Mogliśmy przechowywać dane z powyższej tabeli w dwuwymiarowym tablicy, tak jak to:

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

Teraz ta dwuwymiarowa tablica zawiera cztery tablice i ma dwa indeksy (indeksy): wiersz i kolumna.

Aby uzyskać elementy tablicy $cars, musimy użyć dwóch indeksów (wiersz i kolumna):

Przykład

<?php
echo $cars[0][0].": Zapas: ".$cars[0][1].", Sprzedaż: ".$cars[0][2].".<br>";
echo $cars[1][0].": Zapas: ".$cars[1][1].", Sprzedaż: ".$cars[1][2].".<br>";
echo $cars[2][0].": Zapas: ".$cars[2][1].", Sprzedaż: ".$cars[2][2].".<br>";
echo $cars[3][0].": Zapas: ".$cars[3][1].", Sprzedaż: ".$cars[3][2].".<br>";
?>

Uruchomienie przykładu

Możemy również użyć drugiego pętli for w pętli for, aby uzyskać elementy tablicy $cars (wciąż musimy użyć dwóch indeksów):

Przykład

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

Uruchomienie przykładu