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

Comment parcourir des tableaux en utilisant foreach et for

伊谢尔伦
Libérer: 2023-03-11 06:56:02
original
2388 Les gens l'ont consulté

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
Copier après la connexion

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;;
}
?>
Copier après la connexion

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

18
20
25
Copier après la connexion
Copier après la connexion

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;;
}
?>
Copier après la connexion

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

wang: 18
li: 20
zhang: 25
Copier après la connexion

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);
?>
Copier après la connexion

Résultat de l'exécution de l'exemple :

28
30
35
Array ( [wang] => 18 [li] => 20 [zhang] => 25 )
Copier après la connexion

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);
?>
Copier après la connexion
Exécutez l'exemple de sortie :

18
20
25
Array ( [wang] => 28 [li] => 30 [zhang] => 35 )
Copier après la connexion
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;;
    }
}
?>
Copier après la connexion
Exécution de cet exemple de sortie :

18
20
小张
25
Copier après la connexion
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 />";
}
?>
Copier après la connexion
Exécutez l'exemple de sortie comme suit :

18
20
25
Copier après la connexion
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal