Qu'est-ce que foreach pour parcourir un tableau ?
Lorsque nous utilisons foreach pour parcourir un tableau, nous commettons souvent des erreurs en raison de concepts peu clairs. Voici une brève introduction aux opérations foreach couramment utilisées.
(PHP 4, PHP 5, PHP 7)
La structure syntaxique foreach fournit un moyen simple de parcourir un tableau. foreach ne peut être appliqué qu'aux tableaux et aux objets. Si vous essayez de l'appliquer à des variables d'autres types de données ou à des variables non initialisées, un message d'erreur sera émis.
Deux syntaxes pour que foreach traverse un tableau :
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Le premier format traverse le tableau array_expression donné. Dans chaque boucle, la valeur de l'unité actuelle est attribuée à $value et le pointeur à l'intérieur du tableau avance d'un pas (l'unité suivante sera donc obtenue dans la boucle suivante).
Le deuxième format fait la même chose, sauf que le nom de clé de l'unité actuelle sera également attribué à la variable $key dans chaque boucle.
Depuis PHP 5, il est également possible de parcourir des objets.
Remarque : lorsque foreach commence à s'exécuter, le pointeur à l'intérieur du tableau pointe automatiquement vers la première unité. Cela signifie qu'il n'est pas nécessaire d'appeler reset() avant la boucle foreach.
Remarque : à moins que le tableau ne soit référencé, foreach opère sur une copie du tableau spécifié, pas sur le tableau lui-même. foreach a des effets secondaires sur les pointeurs de tableau. Ne vous fiez pas à la valeur d'un pointeur de tableau pendant ou après une boucle foreach à moins qu'il ne soit réinitialisé.
Depuis PHP 5, il est facile de modifier les éléments d'un tableau en ajoutant & avant $value. Cette méthode attribue par référence plutôt que de copier une valeur. La référence de
<?php header("Content-Type:text/html; charset=utf-8"); $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) unset($value); // 最后取消掉引用 ?>
$value n'est disponible que si le tableau parcouru peut être référencé (par exemple, il s'agit d'une variable). Le code suivant ne s'exécutera pas :
<?php foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2; } ?>
Remarque : La référence $value du dernier élément du tableau sera toujours conservée après la boucle foreach. Il est recommandé d'utiliser unset() pour le détruire. foreach ne prend pas en charge la possibilité de supprimer les messages d'erreur à l'aide de "@".
Ce qui suit est un exemple de php foreach traversant un tableau
1 Le tableau à parcourir est unidimensionnel. tableau, ce qui est relativement simple. S'il s'agit d'un seul tableau, utilisez deux méthodes pour le représenter, comme suit :
<?php header("Content-Type:text/html; charset=utf-8"); $array = array("PHP中文网","百度","搜狗","www.php.cn"); foreach ($array as $value){ echo $value."<br>"; } echo "<br>"; foreach ($array as $key =>$value){ echo $key."--".$value."<br>"; } ?>
Le résultat de sortie est :
2. est un tableau associatif unidimensionnel, affiché comme suit, Notez que les valeurs clés sont différentes :
<?php header("Content-Type:text/html; charset=utf-8"); $array = array("网站1"=>"PHP中文网","网站2"=>"百度","网站3"=>"搜狗","网址"=>"www.php.cn"); foreach ($array as $value){ echo $value."<br>"; } echo "<br>"; foreach ($array as $key =>$value){ echo $key."--".$value."<br>"; } ?>
Le résultat du parcours est :
3. Parcourir le tableau bidimensionnel C'est un peu plus gênant. La valeur à ce moment est un tableau, à partir duquel diverses méthodes d'exploitation des tableaux peuvent être dérivées. Parcourons d'abord le tableau bidimensionnel de base :
<?php header("Content-Type:text/html; charset=utf-8"); $array = array( array("1","PHP中文网"), array("2","www.php.cn"), array("3","百度"), array("4","搜狗") ); foreach ($array as $value){ print_r($value); echo "<br>"; } ?>
Les résultats du parcours sont les suivants :
En utilisant la deuxième méthode, lors du parcours du tableau , vous devez faire attention à la valeur de la clé, ne la confondez pas avec la valeur de l'identifiant du tableau
<?php header("Content-Type:text/html; charset=utf-8"); $array = array( array("1","PHP中文网"), array("2","www.php.cn"), array("3","百度"), array("4","搜狗") ); foreach ($array as $key =>$value){ echo "key =".$key."<br>"; print_r($value); echo "<br>"; } ?>
Les résultats du parcours sont les suivants :
De plus, il y a souvent des demandes de combinaison de deux. Une certaine colonne du tableau dimensionnel devient un tableau unidimensionnel. À ce stade, le champ correspondant dans la valeur doit être retiré et placé dans le tableau unidimensionnel. S'il est utilisé avec une boucle for, il est plus simple d'utiliser foreach. Comme suit, récupérez la colonne id du tableau actuel et la colonne name sont respectivement stockées dans des tableaux unidimensionnels :
.<?php header("Content-Type:text/html; charset=utf-8"); $array = array( array("id"=>"1","name"=>"PHP中文网"), array("id"=>"2","name"=>"www.php.cn"), array("id"=>"3","name"=>"百度"), array("id"=>"4","name"=>"搜狗") ); //二维数组定义 //获取某一列作为一维数组 $idArr = array();//id列 $nameARR = array();//name列 foreach($array as $key => $value){ $arr = $value["id"]; $idArr =$arr; //存入ID列 $name = $value["name"]; $nameARR = $name; //存入name列 print_r($idArr); print_r($nameARR); } ?>
Le résultat du parcours est :
[Tutoriels recommandés]
1. : "tableau php (Array) "
2. Cours vidéo connexes recommandés : " Utilisez la boucle foreach pour parcourir : index et tableau associatif. 》
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!