Při práci s poli je velice častou operací průchod celého pole a jeho zpracování. V PHP3 šlo průchod polem realizovat několika různými způsoby, které byly více či méně elegantní. V PHP4 tyto problémy odpadají — k dispozici je nový příkaz foreach, který slouží k postupnému zpracování všech prvků pole. Pro vypsání všech prvků pole $pole můžeme použít následující kód:
$pole = array(...); foreach ($pole as $hodnota) { echo $hodnota; }
Můžeme využít i alternativní syntaxi, kterou známe z ostatních příkazů pro větvení a cykly.
$pole = array(...); foreach ($pole as $hodnota): echo $hodnota; endforeach;
Jednotlivé prvky pole jsou předávány jako hodnota a ne jako reference. Pokud chceme při průchodu polem jednotlivé prvky pole modifikovat, musíme znát i index jednotlivých prvků. K tomu můžeme využít drobně modifikovanou podobu příkazu foreach.
$pole = array(...); foreach ($pole as $index => $hodnota) { echo $hodnota; // vytiskneme obsah prvku $pole[$index] = 100; // do prvku pole uložíme hodnotu 100 }
Příkaz foreach prochází pole jen přes jeden rozměr. Pokud chceme zpracovat všechny prvky vícerozměrného pole, musíme do sebe foreach několikrát vnořit.