PHP Handbuch
Zurück |  | Nach vorne

# array_walk

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

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

## Beschreibung

int array_walk ( array array, callback function [, mixed userdata])

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

Wendet die mittels `function` angegebene Benutzerfunktion für jedes Element von `array` an. `function` 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 `function` übergeben.

Sollte `function` mehr als die ihr übergebenen Parameter benötigen, wird bei jedem Aufruf von `function` 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 `function` direkt mit den Werten des Arrays arbeiten soll, spezifizieren Sie den ersten Parameter von `function` als Referenz. Dann werden alle Änderungen an diesen Elementen direkt in dem originalen Array durchgeführt.

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

> Anmerkung: Die Übergabe des Schlüssels und von `userdata` an `function` 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. Um den Zeiger zurückzusetzen, verwenden Sie reset(). In PHP 3 setzt array_walk() den Zeiger zurück.

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 obige Programm wird folgendes ausgeben:

`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 list(), foreach, each() und call_user_func_array().

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