Funkcja PHP array_map() wywołuje funkcję zwrotną dla każdego elementu tablicy lub tablic, które zostaną jej przekazane jako argumenty.
Składnia funkcji PHP array_map()
Funkcja PHP array_map() ma następującą składnię:
array_map(?callable $callback, array $array, array ...$arrays): array
Parametry
| Parametr | Opis |
|---|---|
| callback | Parametr obowiązkowy. Funkcja, która ma zostać wywołana dla każdego elementu w każdej przekazanej tablicy.
Liczba jej parametrów powinna być równa liczbie tablic przekazanych do funkcji Jeśli natomiast funkcji zwrotnej zostanie przekazana zbyt mała liczba argumentów (tablic), PHP zgłosi błąd W miejscu argumentu |
| array | Pierwsza tablica, której elementy mają zostać przekazane do funkcji zwrotnej. |
| arrays | Kolejne tablice, które mają zostać przekazane do funkcji zwrotnej. |
Wartość zwrotna
Funkcja PHP array_map() zwraca tablicę wyników zastosowania funkcji zwrotnej do elementów tablicy lub tablic przekazanych jako argumenty do tej funkcji zwrotnej.
Jeśli jako argument zostanie przekazana tylko jedna tablica, to jej klucze zostaną zachowane. W innych przypadkach tablica zwrotna będzie indeksowana numerycznie od zera.
Typ zwrotny: array.
Dodatkowe przykłady
Przekazanie kilku tablic
W poniższym przykładzie do funkcji array_map() zostały przekazane trzy tablice, które zostały wykorzystane przez funkcję zwrotną wskazaną przez pierwszy argument.
$fruit = ["banany", "pomarańcze", "truskawki"];
$sweets = ["cukierki", "batony", "ciastka"];
$meat = ["boczek", "salceson", "pasztet"];
function f($x, $y, $z) {
return ("Lubię $x, $y i $z.");
}
print_r(array_map("f", $fruit, $sweets, $meat));Wynik:
Array
(
[0] => Lubię banany, cukierki i boczek.
[1] => Lubię pomarańcze, batony i salceson.
[2] => Lubię truskawki, ciastka i pasztet.
)
Wartość null jako callback
W poniższym przykładzie zamiast funkcji zwrotnej w pierwszym argumencie funkcji array_map() została przekazana wartość null. W efekcie funkcja ta utworzyła tablicę tablic zawierających elementy o takich samych indeksach z tablic wejściowych.
$fruit = ["banany", "pomarańcze", "truskawki"];
$sweets = ["cukierki", "batony", "ciastka"];
$meat = ["boczek", "salceson", "pasztet"];
print_r(array_map(null, $fruit, $sweets, $meat));Wynik:
Array
(
[0] => Array
(
[0] => banany
[1] => cukierki
[2] => boczek
)
[1] => Array
(
[0] => pomarańcze
[1] => batony
[2] => salceson
)
[2] => Array
(
[0] => truskawki
[1] => ciastka
[2] => pasztet
)
)
