PHP Handbuch
Zurück |  | Nach vorne

# array_walk

(3.0.3 - 3.0.18 only, PHP 4 >= 4.0.0)

array_walk -- Wendet eine Benutzerfunktion an jedem Element eines Arrays an

## Beschreibung

``int array_walk` (array arr, string func [, mixed userdata])`

Wendet die mittels `func` angegebene Benutzerfunktion für jedes Element von `arr` an. `func` wird der Wert als erster, und der Schlüssel als zweiter Parameter übergeben. Sofern angegeben, wird `userdata`, als dritter Parameter an die Funktion `func` übergeben. `func` muss eine vom Benutzer definierte Funktion sein, und nicht eine native PHP Funktion. Deshalb können Sie array_walk() nicht direkt mit str2lower() benutzen, sondern müssen erst eine eigene Funktion damit erstellen, und diese Funktion als Argument übergeben.

Sollte `func` mehr als zwei oder drei Argumente verlangen, wird - abhängig von `userdata` - bei jedem Aufruf von `func` seitens array_walk() eine Warnmeldung generiert. Diese Warnmeldungen können unterdrückt werden, indem man dem Funktionsaufruf von array_walk() ein '@' Zeichen voranstellt, oder mittels der Verwendung von error_reporting().

> Anmerkung: Wenn `func` mit den Werten des Arrays direkt arbeiten soll, geben Sie an, dass der erste Parameter von `func` als Referenz übergeben werden muss. Dann werden alle Änderungen an diesen Elementen direkt in dem selbst durchgeführt.

> Anmerkung: Die Übergabe des Schlüssels und von `userdata` an `func` wurde mit PHP 4.0 eingeführt.

> In PHP 4 muss reset() aufgerufen werden, da array_walk() den internen Zeiger nicht selbsttätig wieder auf das erste Element zurücksetzt.

Beispiel 1. array_walk()
    $fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");

    function test_alter (&$item1, $key, $prefix) {
        $item1 = "$prefix: $item1";
    }

    function test_print ($item2, $key) {
        echo "$key. $item2<br>\n";
    }

    array_walk ($fruits, 'test_print');
    reset ($fruits);
    array_walk ($fruits, 'test_alter', 'fruit');
    reset ($fruits);
    array_walk ($fruits, 'test_print');

Siehe auch each() und list().

Zurück | Zum Anfang | Nach vorne
array_values | Nach oben | arsort