Εξαγωγή στοιχείων από πίνακα με την array_slice()

04 Αυγ 2011 | PHP

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


Στο άρθρο Διαχείριση πινάκων στην PHP μάθατε πως να κάνετε ανάκτηση στοιχείων από ένα πίνακα, πως να αλλάζετε τιμές σε στοιχεία ενός πίνακα και άλλα. Ωστόσο μερικές φορές είναι χρήσιμο να εργάζεστε σε ένα εύρος τιμών ενός πίνακα της PHP. Ας δούμε λοιπών τι μπορούμε να κάνουμε με την PHP για αυτό:

Ας υποθέσουμε πως έχουμε ένα πίνακα με πάρα πολλά στοιχεία και θέλουμε να κάνουμε διάφορες εργασίες πάνω σε αυτό τον πίνακα τμηματικά, ή για παράδειγμα θέλουμε να κάνουμε ταξινόμηση ενός πίνακα και μετά να πάρουμε τα 5 πρώτα στοιχεία του πίνακα μόνο. Ο τρόπος για να κάνουμε εύκολα και γρήγορα τις παραπάνω εργασίες, ή/και ακόμα περισσότερες είναι να χρησιμοποιήσουμε τη συνάρτηση της php array_slice().

Βασική χρήση της συνάρτησης array_slice()

Για να χρησιμοποιήσετε τη συνάρτηση array_slice() θα πρέπει να της δώσετε τα ακόλουθα τρία ορίσματα:

  • Τον πίνακα από τον οποίο θα εξάγουμε ένα τμήμα
  • Τη θέση του στοιχείου που θέλουμε να αρχίσουμε την εξαγωγή
  • Το πλήθος των στοιχείων που θέλουμε να εξάγουμε από τον πίνακα

Το αποτέλεσμα της κλήσης της συνάρτησης array_slice() θα είναι ένας πίνακας που θα έχει μέσα όλα τα στοιχεία του αρχικού πίνακα που επιλέξαμε. Να σημειωθεί εδώ πως τα στοιχεία του αρχικού πίνακα παραμένουν ακέραια.

Ακολουθεί ένα παράδειγμα για τη χρήση της συνάρτησης array_slice():

$music_groups = array('The Doors', 'Pink Floyd', 'Madrugada', 'Radiohead');

// Ο κώδικας που ακολουθεί θα εκτυπώσει Array([0] => Pink Floyd [1] => Madrugada)
echo "<pre>";
print_r(
    array_slice(
        $music_groups,
        1,
        2
    )
);
echo "</pre>";

Στον παραπάνω κώδικα δημιουργήσαμε ένα πίνακα με τέσσερα μουσικά συγκροτήματα, και στη συνέχεια χρησιμοποιήσαμε τη συνάρτηση της PHP array_slice() για να εξάγουμε δυο στοιχεία αρχίζοντας από το δεύτερο στοιχείο του πίνακα.

Να σημειωθεί πως το πρώτο στοιχείο ενός πίνακα δεν είναι απαραίτητο να έχει τον ίδιο αριθμό με τον δείκτη του στοιχείου. Για παράδειγμα το πρώτο στοιχείο ενός πίνακα έχει πάντα τη θέση 0, ωστόσο ο δείκτης του μπορεί να είναι οτιδήποτε (πχ «first_element», 100, 1953, «your_age»)

Διατήρηση δεικτών

Από το προηγούμενο παράδειγμα μπορείτε να διαπιστώσετε πως η συνάρτηση array_slice() δημιουργεί ξανά του δείκτες του πίνακα που επιστρέφει. Έτσι για παράδειγμα οι Pink Floyd έχουν δείκτη 0 και οι Madrugada έχουν δείκτη 1, ενώ στον αρχικό πίνακα είχαν του δείκτες 1 και 2 αντίστοιχα. Συχνά αυτό δεν προκαλεί κάποιο πρόβλημα κατά τον προγραμματισμό κάποιας εφαρμογής αφού αυτό που πραγματικά χρειάζεστε είναι τα δεδομένα και όχι οι δείκτες.

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

$music_groups = array('The Doors', 'Pink Floyd', 'Madrugada', 'Radiohead');

// Ο κώδικας που ακολουθεί θα εκτυπώσει Array([1] => Pink Floyd [2] => Madrugada)
echo "<pre>";
print_r(
    array_slice(
        $music_groups,
        1,
        2,
        true
    )
);
echo "</pre>";

Παρατηρείστε πως αυτή τη φορά η συνάρτηση array_slice() έχει επιστρέψει τα στοιχεία που επιλέξαμε από τον αρχικό πίνακα μαζί με τους δείκτες τους.

Να σημειωθεί πως η συνάρτηση array_slice() επιστρέφει πάντα τους δείκτες σε συσχετισμένους πίνακες, και έτσι στις περιπτώσεις των συσχετισμένων πινάκων δεν είναι απαραίτητο να χρησιμοποιήσετε την τέταρτη παράμετρο.

Εξαγωγή δεδομένων μέχρι το τέλος του πίνακα

Αν καλέσετε τη συνάρτηση array_slice() και δεν ορίσετε την τρίτη παράμετρο, τότε ο πίνακας που θα επιστρέψει η συνάρτηση θα περιέχει όλα τα στοιχεία του αρχικού πίνακα, από το σημείο που ορίζει το δεύτερο όρισμα μέχρι το τελευταίο στοιχείο του πίνακα. Αυτό μπορεί να σας φανεί χρήσιμο για την περίπτωση που δεν γνωρίζεται πόσο μεγάλος είναι ένας πίνακας για αν ορίσετε το πλήθος των στοιχείων που θέλετε να εξάγετε.

$music_groups = array('The Doors', 'Pink Floyd', 'Madrugada', 'Radiohead');

// Ο κώδικας που ακολουθεί θα εκτυπώσει Array([1] => Pink Floyd [2] => Madrugada [3] => Radiohead)
echo "<pre>";
print_r(
    array_slice(
        $music_groups,
        1
    )
);
echo "</pre>";

Χρήση της array_slice() σε συσχετισμένους πίνακες

Μπορείτε αν θέλετε να χρησιμοποιήσετε τη συνάρτηση array_slice() για να εξάγετε στοιχεία από συσχετισμένους πίνακες. Ακολουθεί ένα παράδειγμα που εξάγει δυο στοιχεία σε ένα συσχετισμένο πίνακα.

$song_info = array(
"title" => "Cry for love",
"band" => 'Iggy Pop',
"duration" => '03:31',
"type" => 'rock'
);

// Η ακόλουθη γραμμή θα εκτυπώσει Array([band] => Iggy Pop [duration] => 03:31)
print_r(array_slice($song_info, 1, 2));

Προσέξτε πως η array_slice() έχει διατηρήσει τους δείκτες (band, deration), παρόλο που δεν έχει ορίσει την τέταρτη παράμετρο σε true.

Περίληψη

Σε αυτό το άρθρο μάθαμε για τη συνάρτηση array_slice() της PHP, μια χρήσιμη συνάρτηση η οποία επιστρέφει ένα τμήμα ενός πίνακα. Ποιο συγκεκριμένα είδατε πως :

  • Να χρησιμοποιείτε τη συνάρτηση array_slice() με συσχετισμένους πίνακες και πίνακες με δείκτες
  • Πως να διατηρείτε τις αρχικές τιμές των δεικτών όταν εργάζεστε με πίνακες με δείκτες
  • Πως να εξάγετε όλα τα δεδομένα ενός πίνακα από το σημείο που θέλετε μέχρι το τέλος του πίνακα.

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

CorfuGmr

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








Σχόλια

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

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



^
Top
css.php