4.7 Les structures de contrôle
4 Référence
Manuel PHP
. if . else . elseif . Syntaxe alternative . while . do..while . for ->foreach . break . continue . switch . declare . return . require . include . require_once . include_once
|
4.7.8 foreach
PHP
4 (mais pas
PHP
3) inclut 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:
Instruction foreach() |
<?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ée à
$value
et le pointeur interne de tableau est
avancé d'un élément (ce qui fait qu'à
la prochaine 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émarre, 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
.
Note |
De plus, notez que
foreach
travaille sur une copie
du tableau spécifié, et pas sur le tableau lui-même.
Par conséquent,
le pointeur de tableau n'est pas modifié, comme il le serait
avec le fonction
each
, et les modifications
faites dans le tableau ne seront pas prises en compte dans le
tableau original.
|
Note |
foreach
n'accepte pas l'opérateur de suppression
des erreurs @ .
|
Vous pouvez remarquer que les exemples suivants fonctionnent de
manière identique :
Instruction foreach() et while() |
<?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 :
Instruction foreach() et while() (2) |
<?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 :
Instruction foreach() et while() (3) |
<?php /* exemple foreach 1 : la valeur seulement */
$a = array (1, 2, 3, 17);
foreach ($a as $v) { print "Current value of \$a: $v.\n"; }
/* exemple foreach 2 : la valeur et sa clé d'index */
$a = array (1, 2, 3, 17);
$i = 0; /* uniquement pour l'illustration */
foreach($a as $v) { print "\$a[$i] => $v.\n"; $i++; }
/* exemple foreach 3 : la clé et la valeur */
$a = array ( "un" => 1, "deux" => 2, "trois" => 3, "dix-sept" => 17 );
foreach($a as $k => $v) { print "\$a[$k] => $v.\n"; }
/* exemple foreach 4 : tableaux multi-dimensionnels */
$a[0][0] = "a"; $a[0][1] = "b"; $a[1][0] = "y"; $a[1][1] = "z";
foreach($a as $v1) { foreach ($v1 as $v2) { print "$v2\n"; } }
/* exemple foreach 5 : tableaux dynamiques */
foreach(array(1, 2, 3, 4, 5) as $v) { print "$v\n"; }
?>
|
|