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 :

 
?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 .

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 supppression des erreurs @ .

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

 
eacute;

 
:

 
$key

 
;

 
Valeur

 
:

 
$value

 
br

 
\n"

 
;

 
  }

 
foreach

 
($arr

 
as

 
$key

 
=

 
$value

 
)

 
{

 
echo

 
"Cl

 
eacute;

 
:

 
$key

 
;

 
Valeur

 
:

 
$value

 
br

 
\n"

 
;

 
  }

 
?





Voici quelques exemples de plus :

 
?php

 
/

 
*

 
exemple

 
1

 
:

 
valeurs

 
seules

 
*

 
/

 
$a

 
=

 
array

 
(

 
1

 
,

 
2

 
,

 
3

 
,

 
17)

 
;

 
foreach

 
($a

 
as

 
$v

 
)

 
{

 
print

 
"Valeur

 
courante

 
de

 
\$a

 
:

 
$v.\n"

 
;

 
}

 
/

 
*

 
exemple

 
2

 
:

 
valeurs

 
(avec

 
la

 
cl

 
eacute

 
;

 
correspondante

 
)

 
*

 
/

 
$a

 
=

 
array

 
(1

 
,

 
2

 
,

 
3

 
,

 
17)

 
;

 
$i

 
=

 
0

 
;

 
/

 
*

 
pour

 
l'illustration

 
uniquement

 
*

 
/

 
foreach($a

 
as

 
$v

 
)

 
{

 
print

 
"\$a[$i

 
]

 
=

 
$v.\n"

 
;

 
}

 
/

 
*

 
exemple

 
3

 
:

 
cl

 
eacute

 
;

 
et

 
valeur

 
*

 
/

 
$a

 
=

 
array

 
(

 
"un

 
"

 
=

 
1

 
,

 
"deux

 
"

 
=

 
2

 
,

 
"trois

 
"

 
=

 
3

 
,

 
"dix-sept

 
"

 
=

 
17

 
)

 
;

 
foreach($a

 
as

 
$k

 
=

 
$v

 
)

 
{

 
print

 
"\$a[$k

 
]

 
=

 
$v.\n"

 
;

 
}

 
/

 
*

 
exemple

 
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

 
5

 
:

 
tableaux

 
dynamique

 
*

 
/

 
foreach(array(1

 
,

 
2

 
,

 
3

 
,

 
4

 
,

 
5

 
)

 
as

 
$v

 
)

 
{

 
print

 
"$v\n"

 
;

 
}

 
?