PHP Handbuch
Zurück |  | Weiter

# array_walk

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

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

## Beschreibung

bool array_walk ( array &array, callback funcname [, mixed userdata] )

Gibt bei Erfolg `TRUE` zurück, im Fehlerfall `FALSE`.

Wendet die mittels `funcname` angegebene Benutzerfunktion für jedes Element von `array` an. `funcname` benötigt zwei Parameter. Der Wert von `array` wird als erster übergeben, und der Schlüssel/Index als zweites. Ist der optionale Parameter `userdata` angegeben, so wird er als dritter Parameter an die Funktion `funcname` übergeben.

Sollte `funcname` mehr als die ihr übergebenen Parameter benötigen, wird bei jedem Aufruf von `funcname` seitens array_walk() eine Fehlermeldung der Stufe E_WARNING generiert. Diese Warnmeldungen können unterdrückt werden, indem man dem Funktionsaufruf von array_walk() den Operator @ voranstellt, oder error_reporting() verwendet.

> Anmerkung: Wenn `funcname` direkt mit den Werten des Arrays arbeiten soll, spezifizieren Sie den ersten Parameter von `funcname` als Referenz. Dann werden alle Änderungen an diesen Elementen direkt in dem originalen Array durchgeführt.

> Die Modifizierung des Arrays aus `funcname` heraus könnte ein unvorhersehbares Verhalten hervorrufen.

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

array_walk() ist nicht von dem internen Arrayzeiger von `array` betroffen. array_walk() geht ungeachtet der Zeigerposition das gesamte Array durch.

Von der Benutzerfunktion aus darf das Array selbst nicht geändert werden, wie zum Beispiel durch Hinzufügen oder Löschen eines Elementes, etc. Wird das auf array_walk() angewendete Array geändert, so ist das Verhalten dieser Funktion undefiniert und unvorhersagbar.

Beispiel 1. array_walk()

`<?php $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"; } echo "Vorher ...:\n"; array_walk($fruits, 'test_print'); array_walk($fruits, 'test_alter', 'Frucht'); echo "... und nachher:\n"; array_walk($fruits, 'test_print'); ?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

`Vorher ...: d. Zitrone a. Orange b. Banane c. Apfel ... und nachher: d. Frucht: Zitrone a. Frucht: Orange b. Frucht: Banane c. Frucht: Apfel`

Siehe auch array_walk_recursive(), create_function(), list(), foreach, each(), call_user_func_array(), und array_map(), und Informationen über den Callback-Typ

Zurück | Zum Anfang | Weiter
array_walk_recursive | Nach oben | array