array_walkZastosuj funkcję użytkownika do każdego elementu tablicyOpisboolarray_walkarraytablicacallbacknazwa_funkcjimixeddane
&return.success;
Wykonuje zdefiniowaną przez użytkownika funkcję
nazwa_funkcji na każdym elemencie tablicy
tablica. Zazwyczaj nazwa_funkcji
przyjmuje dwa argumenty. Pierwszym jest element tablicy
tablica, natomiast drugim klucz lub numer indeksu
tego elementu. Jeśli do funkcji array_walk podany
zostanie trzeci element, dane, będzie on
przekazany do nazwa_funkcji jako jej trzeci
argument.
Jeśli nazwa_funkcji wymaga więcej parametrów niż zostało
jej przekazanych, wygenerowany zostanie błąd poziomu E_WARNING dla każdego wywołania
funkcji podanej jako parametr. Ostrzeżenia te mogą być wyciszone poprzez
skorzystanie z operatora kontroli błędów @ przed wywołaniem
array_walk, lub też poprzez użycie funkcji
error_reporting.
Jeśli nazwa_funkcji ma zmieniać wartości tablicy,
należy określić pierwszy argument nazwa_funkcji
jako referencję. W tym
przypadku wszystkie zmiany dokonane przez tą funkcję będą dokonywane
bezpośrednio na oryginalnej tablicy.
Przekazywanie klucza i danych użytkownika do nazwa_funkcji
zostało dodane w PHP 4.0.0.
Na działanie array_walk nie wpływa pozycja
wewnętrznego wskaźnika tablicy. array_walk
przetworzy wszystkie elementy argumentu tablica,
niezależnie odpozycji jej wewnętrznego wskaźnika.
Użytkownicy nie mogą zmieniać samej tablicy z wnętrza funkcji zwrotnej,
to jest dodawać/usuwać elementy, usuwać elementy tablicy na której jest
wywoływana funkcja array_walk. Jeśli ta tablica
zostanie zmieniona, funkcja może się zachowywać w sposób nieokreślony i
nieprzewidywalny..
Przykład użycia array_walk
"cytryna", "a"=>"pomarańcza", "b"=>"banan", "c"=>"jabłko");
function test_zmiana (&$element1, $klucz, $prefiks)
{
$element1 = "$prefiks: $element1";
}
function test_wyswietlanie ($element2, $klucz)
{
echo "$klucz. $element2 \n";
}
echo "Przed ...:\n";
array_walk ($owoce, 'test_wyswietlanie');
array_walk ($owoce, 'test_zmiana', 'owoc');
echo "... i po:\n";
array_walk ($owoce, 'test_wyswietlanie');
?>
]]>
&example.outputs;
Patrz także:
array_walk_recursive,
create_function,
list,
foreach,
each,
call_user_func_array, and
array_map i
&seealso.callback;.