Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 2962|Répondre: 0

Post des nouveaux arrivants, PHP résume 6 façons de traverser des tableaux

[Copié le lien]
Publié sur 08/06/2022 15:56:10 | | |


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'] ;





Précédent:[Combat Pratique] Conditionnement ASP.NET cœurs dans une image Problème de délai NUGET
Prochain:Extensions d’images en charge de l’éditeur Kindeditor (sans dépendance à la mémoire flash)
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com