TYΠOI: Arrays (Πίνακες)

Ένας array στην PHP είναι στην πραγματικότητα ένας ταξινομημένος χάρτης (map). Ένας χάρτης είναι ένας τύπος που αντιστοιχεί τις τιμές σε κλειδιά. Αυτός ο τύπος έχει βελτιστοποιηθεί με πολλούς τρόπους, έτσι ώστε να μπορείτε να τον χρησιμοποιήσετε σαν πραγματικό array, ή ως λίστα (vector), hashtable (το οποίο είναι μια υλοποίηση ενός map), ευρετήριο, συλλογή, στοίβα, ουρά και πιθανώς και άλλα. Επειδή μπορείτε να έχετε και άλλον PHP-array ως τιμή, μπορείτε επίσης σχετικά εύκολα να προσομοιώσετε δέντρα (trees).

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

Ορίζοντας array()

Ένας array μπορεί να δημιουργηθεί από τη γλωσσική δομή (language-construct) array(). Απαιτείται ένας ορισμένος αριθμός από key => ζεύγη τιμών που χωρίζονται με κόμματα.

array( [key =>] value, ... )
// key = integer or string // value = any value

<?php
$arr
= array("foo" => "bar", 12 => true);

echo
$arr["foo"]; // bar
echo $arr[12];    // 1
?>

Ένα κλειδί (key) είναι είτε integer είτε string. Αν ένα key είναι η standard αναπαράσταση ενός integer, τότε θα ερμηνευθεί ως τέτοια (π.χ. το "8" θα ερμηνευθεί ως 8, ενώ το "08" θα ερμηνευθεί ως "08"). Δεν υπάρχουν διαφορετικοί indexed και associative τύποι από arrays στην PHP, υπάρχει μόνο ένας τύπος array, που μπορεί να περιέχει τόσο ακέραια όσο και string ευρετήρια.

Μια τιμή μπορεί να είναι οποιουδήποτε PHP τύπου.

<?php
$arr
= array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo
$arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

Αν παραλείψετε ένα κλειδί, το μέγιστο του ακέραιου-ευρετηρίου λαμβάνεται, και το νέο κλειδί θα είναι αυτό το μέγιστο + 1. Αν καθορίσετε ένα κλειδί που του έχει ήδη ανατεθεί μια τιμή, αυτή η τιμή θα επικαλυφθεί από τη νέα (overwritten).

<?php
// This array is the same as ...
array(5 => 43, 32, 56, "b" => 12);

// ...this array
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>
Παρατήρηση

Όσον αφορά την PHP 4.3.0, η συμπεριφορά παραγωγής του index που περιγράφηκε παραπάνω έχει αλλάξει. Τώρα, αν προσθέσετε σε έναν πίνακα του οποίου το τρέχον μέγιστο κλειδί είναι αρνητικό, τότε το επόμενο κλειδί που θα δημιουργηθεί θα είναι μηδέν (0). Παλιότερα, το καινούριο index θα είχε οριστεί στο μεγαλύτερο υπάρχον κλειδί + 1, όπως συμβαίνει και με τις θετικές τιμές.

Χρησιμοποιώντας το TRUE ως κλειδί θα υπολογιστεί ο ακέραιος 1 ως κλειδί. Χρησιμοποιώντας το FALSE ως κλειδί θα υπολογιστεί ο ακέραιος 0 ως κλειδί. Χρησιμοποιώντας το NULL ως κλειδί θα έχουμε ως αποτέλεσμα ένα κενό string. Χρησιμοποιώντας ένα κενό string ως κλειδί θα δημιουργηθεί (ή επανεγγραφεί) ένα κλειδί με ένα κενό string και η τιμή του δε θα είναι η ίδια με αυτή που θα είχαμε αν χρησιμοποιούσαμε κενές παρενθέσεις.

Δεν μπορείτε να χρησιμοποιήσετε arrays ή objects ως κλειδιά. Αν το κάνετε θα εμφανιστεί η προειδοποίηση: Illegal offset type.


Syntax PHP, v1.1 / April 2006

Σήμερα είναι

Συμβαίνουν τώρα

Χρηστικά

Members