Was ist schneller? Was am sinnvollsten (von Sonderfällen abgesehen, wo man auch mal in der Reihenfolge zurückgehen will, wozu sich die Arbeit mit key, current, next usw. anbietet)? Am einfachsten zu handhaben finde ich foreach.
$array = array(1, 2, 3, 4, 5);
1. $len = count($array);
for ($i=0; $i<$len; $i++)
2. foreach ($array as $element)
3. $len = count($array);
while($i<$len)
4. while(list($key, $element) = each($array)
5. do {
$element = current($array);
} while(next($array))