9.2. Wie kann ich ein Array aufzählen?Antwort von Kristian KöhntoppEin 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<br>\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<br>\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<br>\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<br>\n", $v); } |
||
9.2. Wie kann ich ein Array aufzählen? http://www.php-faq.de/q/q-arrays-aufzaehlen.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |