Maison >développement back-end >tutoriel php >Comment parcourir des tableaux en utilisant foreach et for
La structure syntaxique
foreach est utilisée pour parcourir un tableau.
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 finsUne erreur se produira si le type de données est ou une variable non initialisée.
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 du tableau avance 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 />'; } ?>
Sortie de l'exécution de l'exemple :
18 20 25
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $key=>$age) { echo $key,': ',$age,'<br />'; } ?>
Sortie de l'exécution de l'exemple :
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 pointera 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 )
Pour modifier les éléments du tableau d'origine dans foreach, vous pouvez le faire par référence. 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); ?>Exécutez l'exemple de sortie :
18 20 25 Array ( [wang] => 28 [li] => 30 [zhang] => 35 )Parcourez le
un -tableau dimensionnel. Pour parcourir un tableau multidimensionnel, utilisez généralement la récursion imbriquée foreach ou divisez le tableau d'origine en un tableau unidimensionnel, puis effectuez une traversée foreach.
Untableau bidimensionnel Exemple mixte :
$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 />'; } } ?>Exécution de cet exemple de sortie :
18 20 小张 25pour multidimensionnel
array Lors de la traversée de , la méthode de traitement la plus appropriée doit être adoptée en fonction de la structure réelle des données.
Pré-lecture étendueLes tableaux PHP sont implémentés via des tables de hachage (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 tableauSi 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 />"; } ?>Exécutez l'exemple de sortie comme suit :
18 20 25Conseils Vous pouvez également utiliser list() et each() pour parcourir le tableau, mais le test a révélé que l'efficacité est pas aussi bon que foreach().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!