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