array_walk
Wendet eine Benutzerfunktion an jedem Element eines Arrays an
Beschreibungboolarray_walkarrayarraycallbackfuncnamemixeduserdata
&return.success;
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.
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.
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.
array_walk
"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");
function test_alter(&$item1, $key, $prefix) {
$item1 = "$prefix: $item1";
}
function test_print($item2, $key) {
echo "$key. $item2 \n";
}
echo "Vorher ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'Frucht');
echo "... und nachher:\n";
array_walk($fruits, 'test_print');
?>
]]>
&example.outputs;
Siehe auch array_walk_recursive,
create_function,
list,
foreach,
each,
call_user_func_array, und
array_map, und
&seealso.callback;