foreach

A PHP4-ben (nem a PHP3-ban!) a perlhez és más nyelvekhez hasonlóan rendelkezésre áll egy foreach szerkezet is. Ez egy jól használható eszközt ad a tömbökön végzett iterációkhoz. Két szintaxis létezik, a második egy apró, de hasznos plusz szolgáltatást nyújt az elsőhöz képest.

  1 
  2 foreach(tömb_kifejezés as $ertek) utasítás
  3 foreach(tömb_kifejezés as $kulcs => $ertek) utasítás
  4      

Az első forma végigmegy a tömb_kifejezés által adott tömbön. Minden alkalommal az aktuális elem értéke a $ertek változóba kerül, és a belső tömb mutató növelésre kerül. (Tehát a következő alkalommal a soron következő elemet fogod megkapni).

A második forma ugyanezt végzi el, de az aktuális elem kulcsa a $key változóba kerül.

Megjegyzés: Amikor a foreach indul, a belső tömb mutató az első elemre áll. Ez azt jelenti, hogy nem kell meghívnod a reset() függvényt egy foreach ciklus előtt.

Megjegyzés: Szintén fontos megjegyezni, hogy a foreach függvény a megadott tömb egy másolatával dolgozik, nem magával a tömbbel, ezért az each()-el ellentétben az eredeti tömb mutatója nem változik meg.

Talán már tudod, hogy az alábbiak azonosak:

  1 
  2 
  3 reset ($tomb);
  4 while (list(, $ertek) = each ($tomb)) {
  5     echo "Érték: $ertek<br>\n";
  6 }
  7 
  8 foreach ($tomb as $ertek) {
  9     echo "Érték: $ertek<br>\n";
 10 }
 11 
 12      

Az alábbiak is megegyező eredménnyel szolgálnak:

  1 
  2 
  3 reset ($tomb);
  4 while (list($kulcs, $ertek) = each ($tomb)) {
  5     echo "Kulcs: $kulcs, Érték: $ertek<br>\n";
  6 }
  7 
  8 foreach ($tomb as $kulcs => $ertek) {
  9     echo "Kulcs: $kulcs, Érték: $ertek<br>\n";
 10 }
 11 
 12      

Néhány további felhasználási példa:

  1 
  2 /* első foreach példa: csak érték */
  3 
  4 $tomb = array (1, 2, 3, 17);
  5 
  6 foreach ($tomb as $ertek) {
  7    print "Az aktuális értéke \$tomb-nek: $ertek.\n";
  8 }
  9 
 10 /* második foreach példa: érték (a kulcs csak illusztráció) */
 11 
 12 $tomb = array (1, 2, 3, 17);
 13 
 14 $i = 0; /* csak pedagógiai okokból :) */
 15 
 16 foreach ($tomb as $ertek) {
 17     print "\$tomb[$i] => $ertek.\n";
 18 }
 19 
 20 /* harmadik foreach példa: kulcs és érték */
 21 
 22 $a = tomb (
 23     "egy" => 1,
 24     "kettő" => 2,
 25     "három" => 3,
 26     "tizenhét" => 17
 27 );
 28 
 29 foreach ($tomb as $kulcs => $ertek) {
 30     print "\$tomb[$kulcs] => $ertek.\n";
 31 }
 32