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"; } ?> |
<?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"; } ?> |