Στις καθημερινές λειτουργίες της PHP, οι συστοιχίες είναι η πιο κοινή δομή και ασχολούμαστε με περιεχόμενο που σχετίζεται με συστοιχίες σχεδόν καθημερινά. Το ερώτημα λοιπόν είναι, πώς διασχίζετε και επεξεργάζεστε πίνακες γενικά.
1, για κάθε
Είναι οικείο, δεν είναι το αγαπημένο σου;
$arr = ['α', 'β', 'γ'];
foreach ($arr ως $key => $value) {
$arr[$key] = $value . «_i»·
}
print_r παράγραφος $arr)· ['a_i', 'b_i', 'c_i'];
2, array_map
Χρησιμοποιήστε ανώνυμες συναρτήσεις για να χειριστείτε κάθε στοιχείο του πίνακα. Ένας νέος πίνακας επιστρέφεται όταν ολοκληρωθεί η διέλευση
$arr = ['α', 'β', 'γ'];
$arr = array_map(συνάρτηση ($item) {
επιστροφή $item . «_i»·
}, $arr);
print_r παράγραφος $arr)· ['a_i', 'b_i', 'c_i'];
Μπορείτε να εργαστείτε με πολλούς πίνακες ταυτόχρονα
$arr_1 = ['α', 'β', 'γ'];
$arr_2 = ['εσύ', 'καλό', 'είναι', 'πρωτότυπο', 'αμαρτία'];
$arr_n = [...]·
$arr = array_map(συνάρτηση ($item_1, $item_2) {
επιστροφή $item_1 . '_' . $item_2 . «_i»·
}, $arr_1, $arr_2);
print_r παράγραφος $arr)· ['a_ _i', 'b_ είναι good_i', 'Είσαι c__i', '_original _i', '_sin_i']
Ναι, ο αριθμός των διελεύσεων βασίζεται στον μεγαλύτερο πίνακα.
Αφού διασχίσετε 3 φορές, το $arr_1 ολοκληρώνεται στην πραγματικότητα, επομένως οι τιμές του $item_1 είναι μηδενικές μετά από αυτό
3, array_walk
Η διέλευση του πίνακα σας ως πέρασμα αναφοράς δεν έχει τιμή επιστροφής και μπορεί να επεξεργαστεί μόνο έναν πίνακα.
$arr = ['α', 'β', 'γ'];
array_walk($arr, συνάρτηση (&$item) {
$item = $item . «_i»·
});
print_r παράγραφος $arr)· ['a_i', 'b_i', 'c_i'];
Παρατηρήστε &$item, ναι, υπάρχει ένα επιπλέον &, που σημαίνει ότι η παράμετρος σας λαμβάνει δεδομένα μέσω αναφοράς. Το μόνο που έχετε να κάνετε είναι να βρείτε έναν τρόπο να αλλάξετε αυτήν την παράμετρο.
Εάν έχετε να κάνετε με δισδιάστατους πίνακες, η μέθοδος επεξεργασίας είναι επίσης αδιαχώριστη.
$arr = [
['όνομα' => 'α'],
['όνομα' => 'β'],
['όνομα' => 'γ']
];
array_walk($arr, συνάρτηση (&$item) {
$item['όνομα'] = $item['όνομα'] . «_i»·
});
print_r παράγραφος $arr)· [['όνομα' => 'a_i'], ['όνομα' => 'b_i'], ['όνομα' => 'c_i']];
4, για
Αυτή θα πρέπει να είναι εξαιρετικά γενική σύνταξη
$arr = ['α', 'β', 'γ'];
για ($i = 0; $i < αριθμός($arr); ++$i) {
$arr[$i] = $arr[$i] . «_i»·
}
print_r παράγραφος $arr)· ['a_i', 'b_i', 'c_i'];
Δεν συνιστάται. Δεν είναι τόσο αποτελεσματικό όσο το foreach. Και η μέθοδος γραφής είναι ελαφρώς πιο δυσκίνητη από την προσέγγιση.
5, το καθένα
Χαχα, αυτή η λειτουργία έχει εγκαταλειφθεί στο PHP7.2 @deprecated και φαίνεται ιδιαίτερα παλιομοδίτικη. Η αποτελεσματικότητα εκτέλεσης αυτής της μεθόδου γραφής δεν είναι επίσης καλή και οι αρχάριοι θα πρέπει να τα παρατήσουν άμεσα.
$arr = ['α', 'β', 'γ'];
ενώ (list($key, $value) = each($arr)) {
$arr[$key] = $value . «_i»·
}
print_r παράγραφος $arr)· ['a_i', 'b_i', 'c_i'];
6, Επαναφορά
Για την ακρίβεια, δεν είναι απλώς μια λειτουργία επαναφοράς, αλλά και ένας συνδυασμός πολλαπλών ενσωματωμένων λειτουργιών, που βασικά δεν χρησιμοποιείται για τη σύνταξη κώδικα
$arr = ['α', 'β', 'γ'];
reset() στο κεφάλι, στην πραγματικότητα, η προεπιλογή είναι να δείχνει στην αρχή, μπορείτε να αγνοήσετε αυτήν την πρόταση
επαναφορά($arr);
current() για να λάβετε την τιμή στοιχείου του τρέχοντος δείκτη
ενώ ($value = ρεύμα($arr)) {
key() για να λάβετε τον δείκτη στοιχείου του τρέχοντος δείκτη
$arr[κλειδί($arr)] = $value . «_i»·
next() στο επόμενο
επόμενο($arr);
}
print_r παράγραφος $arr)· ['a_i', 'b_i', 'c_i'];
|