Zastosuje funkcję użytkownika do każdego elementu tablicy.
array_walk ( array &$tablica , $nazwa_funkcji [, $dane ] )
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 argument nazwa_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..
Kompatybilność: PHP4, PHP5.
Listing
$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');
?>
//zwróci:
Przed ...:
d. cytryna
<|!REG3XP0!>a. pomarańcza
b. banan
c. jabłko
... i po:
d. owoc: cytryna|>
a. owoc: pomarańcza
b. owoc: banan
c. owoc: jabłko
Ranga: Administrator serwisu Punktów: 0