La structure foreach en PHP est une boucle conçue pour parcourir facilement les éléments d’un tableau. Elle simplifie l’itération sur un tableau en éliminant le besoin de gérer manuellement les index ou les compteurs. Voici quelques explications et exemples concrets pour illustrer son fonctionnement.
Comment fonctionne foreach ?
La syntaxe de base est la suivante :
foreach ($tableau as $valeur) {
// Traitement pour chaque valeur
}
Dans cet exemple, à chaque itération, $valeur correspond à l’élément courant du tableau. Si vous souhaitez également accéder à la clé associée à chaque élément, vous pouvez utiliser cette syntaxe :
foreach ($tableau as $cle => $valeur) {
// Traitement pour chaque clé et valeur
}
Exemple simple : parcourir un tableau d’éléments
Supposons que vous ayez un tableau contenant des noms de fruits et que vous souhaitiez les afficher :
<?php
$fruits = ["pomme", "banane", "cerise"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
?>
Ce code affichera :
pomme
banane
cerise
Chaque élément du tableau est traité successivement par la boucle.
Exemple avec des clés et des valeurs
Pour un tableau associatif où chaque clé représente un nom et chaque valeur représente une information associée (par exemple, l’âge), vous pouvez procéder ainsi :
<?php
$ages = [
"Alice" => 25,
"Bob" => 30,
"Charlie" => 35
];
foreach ($ages as $nom => $age) {
echo $nom . " a " . $age . " ans.\n";
}
?>
Le résultat sera :
Alice a 25 ans.
Bob a 30 ans.
Charlie a 35 ans.
Exemple avancé : parcourir un tableau multidimensionnel
Lorsque vous avez un tableau contenant plusieurs tableaux (par exemple, une liste de personnes avec des informations), vous pouvez utiliser foreach de manière imbriquée :
<?php
$personnes = [
[
"nom" => "Alice",
"age" => 25
],
[
"nom" => "Bob",
"age" => 30
],
[
"nom" => "Charlie",
"age" => 35
],
];
foreach ($personnes as $personne) {
foreach ($personne as $cle => $valeur) {
echo $cle . ": " . $valeur . "\n";
}
echo "------\n";
}
?>
Ce code affichera les informations de chaque personne, séparées par une ligne :
nom: Alice
age: 25
------
nom: Bob
age: 30
------
nom: Charlie
age: 35
------