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

10 Αυγ 2011 | PHP

Δεν επιτρέπονται τα σχόλια.


Οι πίνακες της PHP μπορούν να έχουν στοιχεία κάθε τύπου. Τα στοιχεία αυτά μπορούν να είναι τμήματα κειμένων, αριθμοί, ημερομηνίες, αντικείμενα, ακόμα και πίνακες. Όταν ένας πίνακας έχει σε κάποιο από τα στοιχεία του ως τιμή ένα άλλο πίνακα, τότε έχουμε ένα πολυδιάστατο πίνακα.

Σε αυτό το άρθρο θα μάθουμε πως να δημιουργούμε πολυδιάστατους πίνακες, πως να ανακτούμε στοιχεία από ένα πολυδιάστατο πίνακα και τέλος πως να δημιουργούμε βρόχους σε πολυδιάστατους πίνακες.

Δημιουργία πολυδιάστατου πίνακα

Μπορείτε να δημιουργήσετε πολυδιάστατους πίνακες με τη χρήση του δομήματος array(), ακριβώς όπως το χρησιμοποιείτε για να δημιουργήσετε νέους πίνακες. Η διαφορά είναι πως κάθε στοιχείο που δημιουργείτε σε ένα πολυδιάστατο πίνακα είναι από μόνο του ένας πίνακας.

Για παράδειγμα:

$my_array = array(
    'value1',
    'value2',
    array(
        'value1',
        'value2',
        'value3'
    ),
    'value3'
);

Στο παραπάνω παράδειγμα έχουμε ένα πίνακα δυο διαστάσεων. Ο πίνακας της πρώτης διάστασης περιέχει 4 στοιχεία, και ο πίνακας της δεύτερης διάστασης που είναι το τρίτο στοιχείο του πίνακα της πρώτης διάστασης περιέχει με τη σειρά του ακόμα τρία στοιχεία.

Μπορείτε επίσης αν θέλετε να χρησιμοποιήσετε πίνακες πολλαπλών διαστάσεων με σχέσεις. Το ακόλουθο παράδειγμα δημιουργεί ένα πίνακα με δείκτες ο περιέχει τρία στοιχεία που είναι όλα πίνακες, και με τη σειρά τους οι τρις πίνακες έχουν στοιχεία με σχέσεις:

$my_array = array(
    array(
        'key_1' => 'value_1',
        'key_2' => 'value_2',
        'key_3' => 'value_3'
    ),
    array(
        'key_1' => 'value_1',
        'key_2' => 'value_2',
        'key_3' => 'value_3'
    ),
    array(
        'key_1' => 'value_1',
        'key_2' => 'value_2',
        'key_3' => 'value_3'
    )
);

Οι διαστάσεις ενός πίνακα μπορούν να είναι όσες θέλετε εσείς. Έτσι μπορείτε να έχετε πίνακες τριών διαστάσεων, τεσσάρων, πέντε, κ.ο.κ.

Προσπέλαση στοιχείων σε πολυδιάστατους πίνακες

Για την προσπέλαση των στοιχείων σε πολυδιάστατους πίνακες μπορείτε να χρησιμοποιήσετε τις αγκύλες, όπως συμβαίνει και στους κανονικούς πίνακες. Αν για παράδειγμα θέλετε να προσπελάσετε στοιχεία σε ένα πίνακα δυο διαστάσεων, απλά χρησιμοποιήστε δύο ζεύγη από αγκύλες.

Για παράδειγμα:

$my_array = array(
    array(
        'First array first element',
        'First array second element'
    ),
    array(
        'Second array first element',
        'Seccond array second element'
    )
);

// Θα εκτυπώσεις "Second array first element"
echo $my_array[1][0];

Με την ίδια τακτική μπορείτε να προσπελάσετε και τα στοιχεία πολυδιάστατων πινάκων με σχέσεις.

Για παράδειγμα:

$my_array = array(
    array(
        'element_1' => 'First array first element',
        'element_2' => 'First array second element'
    ),
    array(
        'element_1' => 'Second array first element',
        'element_2' => 'Seccond array second element'
    )
);

// Θα εκτυπώσεις "First array second element"
echo $my_array[0]['element_2'];

Βρόχος σε πολυδιάστατους πίνακες

Όπως συμβαίνει και με τους κανονικούς, μονοδιάστατους πίνακες, μπορείτε να χρησιμοποιήσετε το βρόχο foreach() για να εκτελέσετε ένα βρόχο σε πολυδιάστατους πίνακες. Για να μπορέσετε όμως να προσπελάσετε και τα στοιχεία των εσωτερικών στοιχείων του πίνακα στο πρώτο επίπεδο, θα πρέπει να δημιουργήσετε ένθετους βρόχους foreach(), έτσι ώστε να έχετε τον ένα βρόχο μέσα στον άλλο.

Στο ακόλουθο παράδειγμα έχουμε ένα πίνακα δυο διαστάσεων και εκτελούμε ένα βρόχο για να προβάλουμε τα στοιχεία του:

$my_array = array(
    'array_1' => array(
        'element_1' => 'First array first element',
        'element_2' => 'First array second element'
    ),
    'array_2' => array(
        'element_1' => 'Second array first element',
        'element_2' => 'Seccond array second element'
    )
);

foreach($my_array as $array_key => $array_value)
{
    foreach($array_value as $element_key => $element_value)
    {
        echo '<strong>' .  $array_key . '</strong> : <em>' . $element_key . '</em> : ' . $element_value . '<br />';
    }
}

Ο παραπάνω κώδικας θα εκτυπώσει:

array_1 : element_1 : First array first element
array_1element_2 : First array second element
array_2element_1 :  Second array first element
array_2element_2 :  Seccond array second element

Περίληψη

Σε αυτό το άρθρο είδαμε πως να δημιουργούμε, να διαχειριζόμαστε και να εκτελούμε βρόχους σε πολυδιάστατους πίνακες της PHP. Οι πολυδιάστατοι πίνακες είναι χρήσιμοι και θα τους συναντήσετε αρκετές φορές κατά την ανάπτυξη λογισμικού, ειδικά αν χρησιμοποιήσετε πλατφόρμες όπως είναι το CakePHP, Zend Framework, Code Igniter, κ.α.

Περισσότερα για τον CorfuGmr

CorfuGmr

Ονομάζομαι Νίκος και ασχολούμαι με το internet και την κατασκευή ιστοσελίδων από το 1998. Σήμερα, μετά από 12 χρόνια γεμάτα με ενημέρωση, εκπαίδευση και εξάσκηση έχω ανεβάσει σε ένα άλλο επίπεδο τις γνώσεις μου και τις τεχνικές μου. Στα άρθρα μου προσπαθώ να σας δείξω τα μικρά, αλλά σημαντικά πράγματα που με έχουν ανεβάσει σε αυτό το επίπεδο.








Σχόλια

Δεν υπάρχουν σχόλια ακόμα.

Συγνώμη, τα σχόλια για αυτό το άρθρο είναι κλειστά.



^
Top
css.php