Dans les opérations quotidiennes de PHP, les tableaux sont la structure la plus courante, et nous traitons presque tous les jours du contenu lié aux arrays. La question est donc : comment traverser et traiter les tableaux en général ?
1.
C’est familier, n’est-ce pas ton préféré ?
$arr = ['a', 'b', 'c'] ;
foreach ($arr as $key => $value) {
$arr[$key] = $value . « _i » ;
}
print_r($arr) ; ['a_i', 'b_i', 'c_i'] ;
2、array_map
Utilisez des fonctions anonymes pour gérer chaque élément du tableau. Un nouveau tableau est retourné lorsque la traversée est terminée
$arr = ['a', 'b', 'c'] ;
$arr = array_map(fonction ($item) {
retour $item. « _i » ;
}, $arr) ;
print_r($arr) ; ['a_i', 'b_i', 'c_i'] ;
Vous pouvez travailler avec plusieurs tableaux en même temps
$arr_1 = ['a', 'b', 'c'] ;
$arr_2 = [« tu », « bon », « est », « original », « péché »] ;
$arr_n = [...] ;
$arr = array_map(fonction ($item_1, $item_2) {
retourner $item_1. '_' . $item_2 . « _i » ;
}, $arr_1, $arr_2) ;
print_r($arr) ; [« a_ tu _i », « b_ est good_i », « Es-tu c__i », « _original _i », « _sin_i »]
Oui, le nombre de traversées dépend du plus long tableau.
Après avoir parcouru 3 fois, $arr_1 est effectivement complété, donc les valeurs de $item_1 sont nulles après cela
3、array_walk
Parcourir votre tableau en tant que passage de référence n’a pas de valeur de retour et ne peut traiter qu’un seul tableau.
$arr = ['a', 'b', 'c'] ;
array_walk($arr, fonction (&$item) {
$item = $item . « _i » ;
});
print_r($arr) ; ['a_i', 'b_i', 'c_i'] ;
Avis $item, oui, il y a un extra &, ce qui signifie que votre paramètre reçoit des données par référence. Il suffit de trouver un moyen de modifier ce paramètre.
Si vous travaillez avec des réseaux bidimensionnels, la méthode de traitement est également indissociable.
$arr = [
['nom' => 'a'],
['nom' => 'b'],
['nom' => 'c']
];
array_walk($arr, fonction (&$item) {
$item['nom'] = $item['nom']. « _i » ;
});
print_r($arr) ; [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']] ;
4、pour
Cela devrait être une syntaxe très générique
$arr = ['a', 'b', 'c'] ;
pour ($i = 0 ; $i < comte ($arr) ; ++$i) {
$arr[$i] = $arr[$i] . « _i » ;
}
print_r($arr) ; ['a_i', 'b_i', 'c_i'] ;
Pas recommandé. Ce n’est pas aussi efficace que le foreach. Et la méthode d’écriture est un peu plus lourde que celle de Forreach.
5、chacun
Haha, cette fonction a été abandonnée dans PHP7.2 @deprecated et paraît particulièrement démodée. L’efficacité de cette méthode d’écriture n’est pas bonne non plus, et les débutants devraient abandonner immédiatement.
$arr = ['a', 'b', 'c'] ;
tandis que (list($key, $value) = chacun($arr)) {
$arr[$key] = $value . « _i » ;
}
print_r($arr) ; ['a_i', 'b_i', 'c_i'] ;
6、 reset
Pour être précis, ce n’est pas seulement une fonction à réinitialiser, mais aussi une combinaison de multiples fonctions intégrées, ce qui n’est pratiquement pas utilisé pour écrire du code
$arr = ['a', 'b', 'c'] ;
pointeur reset() vers la tête, en fait, par défaut est de pointer vers le début, vous pouvez ignorer cette phrase
reset($arr) ;
courant() pour obtenir la valeur de l’élément du pointeur courant
tandis que ($value = courant($arr)) {
key() pour obtenir l’indice élémentaire du pointeur courant
$arr[clé($arr)] = $value . « _i » ;
Next() pointeur vers le suivant
ensuite ($arr) ;
}
print_r($arr) ; ['a_i', 'b_i', 'c_i'] ;
|