(PHP 4, PHP 5)
array_walk — Zastosuj funkcję użytkownika do każdego elementu tablicy
Zwraca TRUE
w przypadku powodzenia, FALSE
w
przypadku błędu.
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().
Informacja:
Jeśli
nazwa_funkcji
ma zmieniać wartości tablicy, należy określić pierwszy argumentnazwa_funkcji
jako referencję. W tym przypadku wszystkie zmiany dokonane przez tą funkcję będą dokonywane bezpośrednio na oryginalnej tablicy.
Informacja:
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 #1 Przykład użycia array_walk()
<?php
$owoce = array ("d"=>"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<br />\n";
}
echo "Przed ...:\n";
array_walk ($owoce, 'test_wyswietlanie');
array_walk ($owoce, 'test_zmiana', 'owoc');
echo "... i po:\n";
array_walk ($owoce, 'test_wyswietlanie');
?>
Powyższy przykład wyświetli:
Przed ...: d. cytryna a. pomarańcza b. banan c. jabłko ... i po: d. owoc: cytryna a. owoc: pomarańcza b. owoc: banan c. owoc: jabłko
Patrz także: array_walk_recursive(), create_function(), list(), foreach, each(), call_user_func_array(), and array_map() i informacje o typie callback.