PHP foreach Boucle


Boucle PHP foreach sur les tableaux indexés

La boucle PHP foreach parcourt un bloc de code pour chaque élément d'un tableau ou chaque propriété d'un objet.

L'exemple suivant parcourt tous les éléments d'un tableau indexé :

Exemple

Parcourir les éléments d'un tableau indexé :

$colors = array("red", "green", "blue", "yellow"); foreach ($colors as $value) { echo "$value <br>"; }
Essayez-le vous-même »

Explication : Pour chaque itération de la boucle, la valeur de l'élément actuel du tableau est assignée à la variable $value . L'itération se poursuit jusqu'à atteindre le dernier élément du tableau.


Boucle PHP foreach sur les tableaux associatifs

Le tableau ci-dessus est un tableau indexé , où le premier élément a la clé 0, le deuxième a la clé 1, et ainsi de suite.

Les tableaux associatifs sont différents ; ils utilisent des clés nommées, et lors de leur parcours, vous voudrez peut-être également conserver le nom de la clé ainsi que la valeur.

Cela se fait en spécifiant à la fois la clé et la valeur dans la boucle foreach , comme ceci :

Exemple

Imprimer à la fois la clé et la valeur du tableau $members :

$members = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); foreach ($members as $key => $value) { echo "$key : $value <br>"; }
Essayez-le vous-même »

Vous en apprendrez davantage sur les tableaux dans le chapitre Tableaux PHP .



Boucle PHP foreach sur les objets

La boucle foreach peut également être utilisée pour parcourir les propriétés d'un objet :

Exemple

Imprimer les noms et valeurs des propriétés de l'objet $myCar :

class Car { public $color; public $model; public function __construct($color, $model) { $this->color = $color; $this->model = $model; } } $myCar = new Car("red", "Volvo"); foreach ($myCar as $x => $y) { echo "$x: $y <br>"; }
Essayez-le vous-même »

Vous en apprendrez davantage sur les objets dans le chapitre Objets et Classes PHP .


L'instruction break en PHP

Avec l'instruction break , nous pouvons arrêter la boucle même si elle n'a pas atteint la fin :

Exemple

Arrêter la boucle si $x est "blue" :

$colors = array("red", "green", "blue", "yellow"); foreach ($colors as $x) { if ($x == "blue") break; echo "$x <br>"; }
Essayez-le vous-même »

L'instruction continue en PHP

Avec l'instruction continue , nous pouvons sauter l'itération actuelle et continuer avec la suivante :

Exemple

Sauter et passer à l'itération suivante si $x est "blue" :

$colors = array("red", "green", "blue", "yellow"); foreach ($colors as $x) { if ($x == "blue") continue; echo "$x <br>"; }
Essayez-le vous-même »

Boucle PHP Foreach Byref

Lors de la boucle à travers les éléments du tableau, tout changement apporté à l'élément du tableau n'affectera pas, par défaut, le tableau original :

Exemple

Par défaut, changer un élément de tableau n'affectera pas le tableau original :

$colors = array("red", "green", "blue", "yellow"); foreach ($colors as $x) { if ($x == "blue") $x = "pink"; } var_dump($colors);
Essayez-le vous-même »

MAIS, en utilisant le caractère & dans la déclaration foreach , l'élément du tableau est assigné par référence , ce qui signifie que tout changement apporté à l'élément du tableau sera également fait au tableau original :

Exemple

En assignant les éléments du tableau par référence , les changements affecteront le tableau original :

$colors = array("red", "green", "blue", "yellow"); foreach ($colors as &$x) { if ($x == "blue") $x = "pink"; } var_dump($colors);
Essayez-le vous-même »

Syntaxe alternative

La syntaxe de la boucle foreach peut également être écrite avec l'instruction endforeach comme ceci :

Exemple

Parcourir les éléments d'un tableau indexé :

$colors = array("red", "green", "blue", "yellow"); foreach ($colors as $x) : echo "$x <br>"; endforeach;
Essayez-le vous-même »