Array multidimensionali PHP

Nei capitoli precedenti di questo tutorial, abbiamo già saputo che un array è una lista semplice di coppie di chiave/valore.

Tuttavia, a volte si desidera memorizzare valori utilizzando una chiave superiore a una.

È possibile memorizzare dati utilizzando array multidimensionali.

PHP - Array multidimensionale

Un array multidimensionale è un array che contiene uno o più array.

PHP può comprendere array bidimensionali, tridimensionali, quadrimensionali o quintimensionali e persino di più. Tuttavia, gli array con più di tre livelli profondi sono spesso difficili da gestire per la maggior parte delle persone.

Nota:La dimensione dell'array indica il numero di indici necessari per selezionare un elemento.

  • Per un array bidimensionale, è necessario due indici per selezionare un elemento
  • Per un array tridimensionale, è necessario tre indici per selezionare un elemento

PHP - Array bidimensionale

Un array bidimensionale è un array di array (un array tridimensionale è un array di array di array).

Iniziamo a guardare la seguente tabella:

Marchio Magazzino Vendite
Volvo 33 20
BMW 17 15
Saab 5 2
Land Rover 15 11

Possiamo memorizzare i dati della tabella elencata in un array bidimensionale, come segue:

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

Ora questa matrice bidimensionale contiene quattro array e ha due indici (sottoscrizioni): riga e colonna.

Per accedere agli elementi dell'array $cars, dobbiamo utilizzare due indici (riga e colonna):

Esempio

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

Esempio di esecuzione

Possiamo anche usare un altro ciclo for all'interno di un ciclo for per ottenere gli elementi dell'array $cars (abbiamo ancora bisogno di due indici):

Esempio

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

Esempio di esecuzione