Ein Array enthält $anz = count($avar) viele Elemente. Man kann diese Elemente mit einer for-Schleife aufzählen, falls die Indizes numerisch-zusammenhängend sind:
$avar = array('rot', 'gelb', 'blau', 'schwarz'); $anz = count($avar); for ($i=0; $i<$anz; $i++) { printf("i: %d avar[%d] = %s \n", $i, $i, $avar[$i]); }
Für assoziative Arrays ist dieses Konstrukt besser geeignet:
if (isset($avar) && is_array($avar)) { foreach ($avar as $k => $v) { printf("k=%s v=%s \n", $k, $v); } }
In PHP3 hat man oft die folgende Syntax verwendet, die inzwischen veraltet (aber noch funktionsfähig) ist:
if (isset($avar) && is_array($avar)) { reset($avar); while (list($k, $v) = each($avar)) { printf("k=%s v=%s \n", $k, $v); } }
Es macht Gebrauch von den Funktionen reset() um den internen Positionszeiger eines Arrays zurückzusetzen, list() um einen Zuweisungskontext für ein Wertepaar $k und $v zu erzeugen und each() um den Schlüssel (key, k) und den Wert (value, v) an der aktuellen Position des Arrays auszulesen.
Von der Anwendung der veralteten und defekten Funktionen next(), prev() und current() ist in diesem Zusammenhang abzuraten, da sie bei Arrays mit Nullwerten falsche Ergebnisse liefern. Diese Schleife wird nur die Werte -2 und -1 ausgeben, da hier der Wert 0 nicht vom Feldende unterschieden werden kann:
$avar = array(-2, -1, 0, 1, 2); for (reset($avar); $v = current($avar); next($avar)) { printf("v = %d \n", $v); }






