|
TYΠOI: Arrays (συνέχεια 2)
Μετατρέποντας σε array
Για οποιοδήποτε από τους τύπους: integer, float,
string, boolean και resource,
αν μετατρέψετε μια τιμή σε array, παίρνετε έναν array
με ένα στοιχείο (με index 0), το οποίο είναι η βαθμωτή τιμή με την
οποία αρχίσατε.
Αν μετατρέψετε ένα object σε έναν array, παίρνετε τις
ιδιότητες (μεταβλητές μελών) αυτού του αντικειμένου ως στοιχεία του array.
Τα κλειδιά είναι τα ονόματα των μεταβλητών μελών.
Αν μετατρέψετε μια NULL τιμή σε array, παίρνετε έναν κενό array.
Παραδείγματα
Ο τύπος array στην PHP είναι πολύ ευπροσάρμοστος, έτσι εδώ θα δείτε
μερικά παραδείγματα που θα σας δείξουν τις πολλές δυνατότητες των arrays.
Χρησιμοποιώντας την array()
<?php // Array as (property-)map $map = array( 'version' => 4, 'OS' => 'Linux', 'lang' => 'english', 'short_tags' => true ); // strictly numerical keys $array = array( 7, 8, 0, 156, -10 ); // this is the same as array(0 => 7, 1 => 8, ...)
$switching = array( 10, // key = 0 5 => 6, 3 => 7, 'a' => 4, 11, // key = 6 (maximum of integer-indices was 5) '8' => 2, // key = 8 (integer!) '02' => 77, // key = '02' 0 => 12 // the value 10 will be overwritten by 12 ); // empty array $empty = array(); ?>
|
|
Collection (Συλλογή)
<?php $colors = array('red', 'blue', 'green', 'yellow');
foreach ($colors as $color) { echo "Do you like $color?\n"; }
/* output: Do you like red? Do you like blue? Do you like green? Do you like yellow? */ ?>
|
|
Σημειώστε ότι προς το παρόν δεν είναι δυνατό να αλλάξουμε τις τιμές του array
άμεσα σε ένα τέτοιο loop.
Δείτε το ακόλουθο:
Collection
<?php foreach ($colors as $key => $color) { // won't work: //$color = strtoupper($color); // works: $colors[$key] = strtoupper($color); } print_r($colors);
/* output: Array ( [0] => RED [1] => BLUE [2] => GREEN [3] => YELLOW ) */ ?>
|
|
Αυτό το παράδειγμα δημιουργεί έναν one-based array.
One-based index
<?php $firstquarter = array(1 => 'January', 'February', 'March'); print_r($firstquarter);
/* output: Array ( [1] => 'January' [2] => 'February' [3] => 'March' ) */
|
|
Γεμίζοντας έναν array
// fill an array with all items from a directory $handle = opendir('.'); while (false !== ($file = readdir($handle))) { $files[] = $file; } closedir($handle); ?>
|
|
Οι arrays είναι διατεταγμένοι. Μπορείτε επίσης να αλλάξετε τη σειρά χρησιμοποιώντας διάφορες
συναρτήσεις ταξινόμησης. Δείτε το τμήμα συναρτήσεις για
arrays για περισσότερες πληροφορίες. Μπορείτε να μετρήσετε
τον αριθμό των στοιχείων σε ένα array χρησιμοποιώντας τη συνάρτηση
count() .
Array ταξινόμησης
<?php sort($files); print_r($files); ?>
|
|
Επειδή η τιμή ενός array μπορεί να είναι οτιδήποτε, μπορεί επίσης να είναι
ένας άλλος array. Μ'αυτόν τον τρόπο μπορείτε να κάνετε αναδρομικούς και
πολυδιάστατους arrays.
Αναδρομικοι και πολυδιάστατοι arrays
<?php $fruits = array ( "fruits" => array ( "a" => "orange", "b" => "banana", "c" => "apple" ), "numbers" => array ( 1, 2, 3, 4, 5, 6, ), "holes" => array ( "first", 5 => "second", "third" ) );
// Some examples to address values in the array above echo $fruits["holes"][5]; // prints "second" echo $fruits["fruits"]["a"]; // prints "orange" unset($fruits["holes"][0]); // remove "first"
// Create a new multi-dimensional array $juices["apple"]["green"] = "good"; ?>
|
|
Πρέπει να προσέχετε επειδή οι αναθέσεις των array πάντα εμπλέκουν
αντιγραφή τιμών. Θα χρειαστεί να χρησιμοποιήσετε τον τελεστή αναφοράς για να
αντιγράψετε έναν array με αναφορά.
|