TYΠOI: Arrays (συνέχεια 2)

Μετατρέποντας σε array

Για οποιοδήποτε από τους τύπους: integer, float, string, boolean και resource, αν μετατρέψετε μια τιμή σε array, παίρνετε έναν array με ένα στοιχείο (με index 0), το οποίο είναι η βαθμωτή τιμή με την οποία αρχίσατε.

Αν μετατρέψετε ένα object σε έναν array, παίρνετε τις ιδιότητες (μεταβλητές μελών) αυτού του αντικειμένου ως στοιχεία του array. Τα κλειδιά είναι τα ονόματα των μεταβλητών μελών.

Αν μετατρέψετε μια NULL τιμή σε array, παίρνετε έναν κενό array.

Παραδείγματα

Ο τύπος array στην PHP είναι πολύ ευπροσάρμοστος, έτσι εδώ θα δείτε μερικά παραδείγματα που θα σας δείξουν τις πολλές δυνατότητες των arrays.

<?php
// this
$a = array( 'color' => 'red',
            
'taste' => 'sweet',
            
'shape' => 'round',
            
'name'  => 'apple',
                       
4        // key will be 0
          
);

// is completely equivalent with
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // key will be 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// will result in the array array(0 => 'a' , 1 => 'b' , 2 => 'c'),
// or simply array('a', 'b', 'c')
?>

Χρησιμοποιώντας την 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 με αναφορά.

<?php
$arr1
= array(2, 3);
$arr2 = $arr1             
$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
?>

Syntax PHP, v1.1 / April 2006

Σήμερα είναι

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

Χρηστικά

Members