foreach()
La structure syntaxique PHP foreach() est utilisée pour parcourir des opérations ou des tableaux de sortie. foreach() ne peut être utilisée que pour parcourir des tableaux ou des objets lorsque vous essayez de l'utiliser pour d'autres types de données ou. une inconnue Une erreur se produit lors de l'initialisation des variables.
Syntaxe :
foreach (array as $value) statement // 或者: foreach (array as $key => $value) statement
Dans la syntaxe ci-dessus, chaque boucle attribue la valeur de l'unité actuelle à $value et le pointeur à l'intérieur le tableau Avancez d’un pas. Dans le deuxième format de syntaxe, le nom de clé de l'unité actuelle est également attribué à la variable $key dans chaque boucle.
Exemple :
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $age) { echo $age,'<br />'; } ?>
Exécutez cet exemple de sortie :
18 20 25
Utiliser la valeur de la clé du tableau
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $key=>$age) { echo $key,': ',$age,'<br />'; } ?>
Exécuter l'exemple de sortie :
wang: 18 li: 20 zhang: 25
Lorsque foreach commence à s'exécuter, le pointeur à l'intérieur du tableau pointe automatiquement vers la première unité, ce qui signifie qu'il n'est pas nécessaire d'appeler reset() avant la boucle foreach.
foreach opère sur une copie du tableau spécifié, pas sur le tableau lui-même. Les modifications apportées aux éléments du tableau renvoyés n'affecteront pas le tableau d'origine (voir exemple ci-dessous), mais lorsque la boucle foreach arrive à la fin, le pointeur interne du tableau d'origine pointe vers la fin du tableau.
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $age) { $age = $age+10; echo $age,'<br />'; } // 输出原数组 print_r($arr_age); ?>
Résultat de l'exécution de l'exemple :
28 30 35 Array ( [wang] => 18 [li] => 20 [zhang] => 25 )
à être in foreach La modification des éléments du tableau d'origine peut être réalisée en utilisant des références. Remplacez l'exemple ci-dessus par :
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as &$age) { $age = $age+10; echo $age,'<br />'; } // 输出原数组 print_r($arr_age); ?>
Sortie de l'exécution de l'exemple :
18 20 25 Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
Parcourir des tableaux multidimensionnels
La structure syntaxique foreach ne peut être utilisée que pour parcourir des tableaux unidimensionnels. Pour parcourir des tableaux multidimensionnels, utilisez généralement la récursion imbriquée foreach. ou divisez le tableau d'origine en tableaux unidimensionnels. Le tableau est ensuite parcouru par foreach.
Exemple de mélange de tableaux à une et deux dimensions :
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小张", "age"=>25)); foreach ($arr_age as $age) { if(is_array($age)){ foreach ( $age as $detail) { echo $detail,'<br />'; } } else { echo $age,'<br />'; } } ?>
Le parcours de tableaux multidimensionnels nécessite la méthode de traitement la plus appropriée en fonction de la structure réelle des données.
Les tableaux PHP sont implémentés via des tables HashTable, donc foreach parcourt le tableau en fonction de l'ordre dans lequel les éléments sont ajoutés. Si vous souhaitez parcourir par taille d'index, vous devez utiliser une boucle for().
boucle for() pour parcourir le tableau
Si vous utilisez un tableau de valeurs clés continues, vous pouvez également utiliser la boucle for() pour parcourir le tableau :
<?php $arr_age = array(18, 20, 25); $num = count($arr_age); for($i = 0; $i < $num; $i++){ echo $arr_age[$i]."<br />"; } ?>
Vous pouvez également utiliser list() et each() pour parcourir le tableau, mais les tests ont révélé que l'efficacité
n'est pas aussi bonne que foreach().
La structure syntaxique et les exemples de parcours de tableau PHP ci-dessus sont tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence, et j'espère également que vous accorderez plus d'attention au chinois PHP. site web.
Pour plus d'articles sur la traversée de tableaux PHP pour chaque structure syntaxique et des exemples, veuillez faire attention au site Web PHP chinois !