PHP moniulotteiset taulukot

Aiemmissa opetusjaksoissamme olemme jo oppineet, että taulukko on yksinkertainen luettelo avain-arjavpareja.

Joskus kuitenkin haluat tallentaa arvoja yhdellä tai useammalla avaimella.

Voit tallentaa moniulotteisiin taulukoihin.

PHP - moniulotteinen taulukko

Moniulotteinen taulukko tarkoittaa taulukkoa, joka sisältää yhden tai useamman taulukon.

PHP voi ymmärtää kaksi, kolme, neljä tai viisi tasoista (tai useampaa) moniulotteisia taulukoita. Kuitenkin, yli kolmivaiheiset taulukot ovat usein vaikeita hallita.

Huomautus:Taulukon ulottuvuus kertoo sinulle, kuinka monta indeksiä sinun täytyy valita elementin valintaan

  • Kaksiulotteiselle taulukolle tarvitset kaksi indeksiä elementin valintaan
  • Kolmeulotteiselle taulukolle tarvitset kolme indeksiä elementin valintaan

PHP - kaksiulotteinen taulukko

Kaksiulotteinen taulukko on taulukon taulukko (kolmeulotteinen taulukko on taulukon taulukon taulukko).

Katsotaan ensin seuraavaa taulukkoa:

Brändi Varastomäärä Myyntimäärä
Volvo 33 20
BMW 17 15
Saab 5 2
Land Rover 15 11

Voimme tallentaa kaksiulotteiseen taulukkoon yllä olevan taulukon tiedot tällä tavalla:

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

Tämä kaksidimensionaalinen taulukko sisältää neljä taulukkoa ja sillä on kaksi indeksiä (indeksiä): rivi ja sarake.

Jos haluamme tarkastella $cars-taulukon elementtejä, meidän täytyy käyttää kahta indeksiä (rivi ja sarake):

Esimerkki

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

Suoritettu esimerkki

Voimme myös käyttää toista For-silmukkaa For-silmukan sisällä saadaksemme $cars-taulukon elementit (meidän täytyy edelleen käyttää kahta indeksiä):

Esimerkki

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

Suoritettu esimerkki