Πολυδιάστατα Παραθέματα στο PHP

Στα προηγούμενα κεφάλαια του εγχειριδίου, ήδη γνωρίζουμε ότι το array είναι μια απλή λίστα από στοιχεία/τιμές.

Ωστόσο, μερικές φορές θέλετε να αποθηκεύσετε τιμές με περισσότερους από έναν κλειδί.

Μπορείτε να αποθηκεύσετε δεδομένα με πολυδιάστατο πίνακα.

PHP - Πολυδιάστατος πίνακας

Πολυδιάστατος πίνακας είναι πίνακας που περιέχει έναν ή περισσότερους πίνακες.

Το PHP μπορεί να κατανοήσει διπλούς, τριπλούς, τετράπλους ή πέντε επίπεδους και περισσότερους πολυδιάστατους πίνακες. Ωστόσο, οι πίνακες με περισσότερα από τρία επίπεδα είναι δύσκολο να διαχειριστούν για πολλούς.

Σημείωση:Η διάσταση του πίνακα δείχνει τον αριθμό των δείκτών που χρειάζεστε για να επιλέξετε στοιχεία.

  • Για διδιάστατο πίνακα, χρειάζεστε δύο δείκτες για να επιλέξετε στοιχεία
  • Για τριδιάστατο πίνακα, χρειάζεστε τρεις δείκτες για να επιλέξετε στοιχεία

PHP - Διδιάστατος πίνακας

Διδιάστατος πίνακας είναι πίνακας πινάκων (τριδιάστατος πίνακας είναι πίνακας πινάκων πινάκων).

Πρώτα, ας δούμε τον παρακάτω πίνακα:

Μάρκα Αποθήκη Πωλήσεις
Volvo 33 20
BMW 17 15
Saab 5 2
Land Rover 15 11

Μπορούμε να αποθηκεύσουμε τα δεδομένα του παραπάνω πίνακα σε δύοδιάστατο πίνακα, όπως αυτό:

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

Now this two-dimensional array contains four arrays and has two indices (subscripts): row and column.

To access elements of the $cars array, we must use two indices (row and column):

Example

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

Run Example

We can also use another for loop inside a for loop to get elements from the $cars array (we still need to use two indices):

Example

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

Run Example