foreach

PHP 4 (mais pas PHP 3) inclus une commande foreach, comme en Perl ou d'autres langages. C'est un moyen simple de passer en revue un tableau. Il y a deux syntaxes possibles : la seconde est une extension mineure mais pratique de la première:


<?php
foreach(array_expression as $value) commandes
foreach(array_expression as $key => $value) commandes
?>
     

La première forme passe en revue le tableau array_expression. A chaque itération, la valeur de l'élément courant est assigné à $value et le pointeur interne de tableau est avancé d'un élément (ce qui fait qu'à la prochaîne itération, on accédera à l'élément suivant).

La deuxième forme fait exactement la même chose, mais c'est la clé de l'élément courant qui est assigné à la variable $key.

Lorsque foreach démare, le pointeur interne de fichier est automatiquement ramené au premier élément du tableau. Cela signifie que vous n'aurez pas à faire appel à reset() avant foreach.

Vous pouvez remarquer que les exemples suivants fonctionnent de manière identique :


<?php
reset($arr);
while (list(, $value) = each ($arr)) {
    echo "Valeur: $value<br>\n";
}
foreach ($arr as $value) {
    echo "Valeur: $value<br>\n";
}
?>
     

Les exemples suivants sont aussi fonctionnellement identiques :


<?php
reset($arr);
while (list($key, $value) = each ($arr)) {
    echo "Clé: $key; Valeur: $value<br>\n";
}
foreach ($arr as $key => $value) {
    echo "Clé: $key; Valeur: $value<br>\n";
}
?>
     

Voici quelques exemples de plus :


<?php
/* exemple 1: valeur seule */
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
   print "Valeur courante de \$a: $v.\n";
}
/* exemple 1: valeur (avec clé associée) */
$a = array (1, 2, 3, 17);
$i = 0; /* pour affichage seulement*/
foreach($a as $v) {
    print "\$a[$i] => $v.\n";
}
/* exemple 1: valeur et clé */
$a = array (
    "un" => 1,
    "deux" => 2,
    "trois" => 3,
    "dix-sept" => 17
);
foreach($a as $k => $v) {
    print "\$a[$k] => $v.\n";
}
?>