Maison  >  Article  >  développement back-end  >  Comment parcourir des tableaux en utilisant foreach et for

Comment parcourir des tableaux en utilisant foreach et for

伊谢尔伦
伊谢尔伦original
2017-06-22 15:04:382283parcourir

La structure syntaxique

foreach est utilisée pour parcourir un tableau.

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 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,&#39;<br />&#39;;
}
?>

Sortie de l'exécution de l'exemple :

18
20
25

Utilisation des valeurs de clé du tableau

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $key=>$age) {
    echo $key,&#39;: &#39;,$age,&#39;<br />&#39;;
}
?>

Sortie de l'exécution de l'exemple :

wang: 18
li: 20
zhang: 25

Astuce

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,&#39;<br />&#39;;
}
// 输出原数组
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,&#39;<br />&#39;;
}
// 输出原数组
print_r($arr_age);
?>
Exécutez l'exemple de sortie :

18
20
25
Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
Parcourez le

tableau multidimensionnel

La structure syntaxique foreach ne peut être utilisée que pour parcourir

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.

Un

tableau 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,&#39;<br />&#39;;
        }
    } else {
        echo $age,&#39;<br />&#39;;
    }
}
?>
Exécution de cet exemple de sortie :

18
20
小张
25
pour 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 étendue

Les 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 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 />";
}
?>
Exécutez l'exemple de sortie comme suit :

18
20
25
Conseils

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn