array_map Stosuje podany callback do elementów podanych tablic &reftitle.description; arrayarray_map callablenullcallback arrayarray arrayarrays array_map zwraca tablicę &array; zawierającą wyniki zastosowania callback do odpowiedniej wartości tablicy array (i tablic arrays, jeśli podano więcej tablic) użytych jako argumenty dla funkcji zwrotnej callback. Liczba parametrów, które callback akceptuje, powinna być zgodna z liczbą tablic przekazanych do funkcji array_map. Nadmiarowe tablice wejściowe są ignorowane. Błąd ArgumentCountError jest zgłaszany, jeśli podano niewystarczającą liczbę argumentów. &reftitle.parameters; callback Funkcja zwrotna callable do uruchomienia na każdym elemencie w każdej tablicy. &null; może być przekazana jako wartość do callback aby wykonać operację zip na wielu tablicach i zwrócić tablicę, której każdy element jest tablicą zawierającą elementy tablic wejściowych o tym samym indeksie (patrz przykład poniżej). Jeśli tylko tablica array została podana, array_map zwróci tablicę wejściową. array Tablica do przepuszczenia przez podany callback. arrays Dodatkowa zmienna lista argumentów tablicowych, które mają być uruchomione przez funkcję callback. &reftitle.returnvalues; Zwraca tablicę zawierającą wyniki zastosowania funkcji callback do odpowiedniej wartości tablicy array (i tablic arrays jeśli podano więcej tablic) używanych jako argumenty funkcji zwrotnej callback Zwrócona tablica zachowa klucze argumentu tablicy wtedy i tylko wtedy, jeśli przekazano dokładnie jedną tablicę. Jeśli przekazano więcej niż jedną tablicę, zwrócona tablica będzie miała sekwencyjne klucze liczb całkowitych. &reftitle.changelog; &Version; &Description; &array.changelog.by-ref; &reftitle.examples; Przykład użycia <function>array_map</function> ]]> Zmienna b $b otrzyma: 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 ) ]]> <function>array_map</function> z użyciem funkcji lambda $value * 2, range(1, 5))); ?> ]]> &example.outputs; 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) ]]> <function>array_map</function> - użycie większej ilości tablic $m]; } $a = [1, 2, 3, 4, 5]; $b = ['uno', 'dos', 'tres', 'cuatro', 'cinco']; $c = array_map('show_Spanish', $a, $b); print_r($c); $d = array_map('map_Spanish', $a , $b); print_r($d); ?> ]]> &example.outputs; Cyfra 1 to po hiszpańsku uno [1] => Cyfra 2 to po hiszpańsku dos [2] => Cyfra 3 to po hiszpańsku tres [3] => Cyfra 4 to po hiszpańsku cuatro [4] => Cyfra 5 to po hiszpańsku cinco ) // wypis zmiennej $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) ) ]]> Zazwyczaj, gdy używa się dwóch lub więcej tablic, powinny one mieć jednakową długość, ponieważ funkcja zwrotna jest stosowana równolegle do odpowiadających elementów. Jeśli tablice nie są równej długości, krótsze zostaną rozszerzone, używając pustych elementów, tak aby ich długość zgadzała się z najdłuższą z tablic. Ciekawym zastosowaniem tej funkcji może być konstruowanie tablicy tablic, które może zostać łatwo osiągnięte dzięki użyciu &null; jako nazwy funkcji zwrotnej Wykonywanie operacji zip na tablicach ]]> &example.outputs; Array ( [0] => 1 [1] => one [2] => uno ) [1] => Array ( [0] => 2 [1] => two [2] => dos ) [2] => Array ( [0] => 3 [1] => three [2] => tres ) [3] => Array ( [0] => 4 [1] => four [2] => cuatro ) [4] => Array ( [0] => 5 [1] => five [2] => cinco ) ) ]]> &null; <parameter>callback</parameter> tylko z <parameter>array</parameter> ]]> &example.outputs; int(1) [1]=> int(2) [2]=> int(3) } ]]> <function>array_map</function> - z kluczami tekstowymi 'value']; function cb1($a) { return [$a]; } function cb2($a, $b) { return [$a, $b]; } var_dump(array_map('cb1', $arr)); var_dump(array_map('cb2', $arr, $arr)); var_dump(array_map(null, $arr)); var_dump(array_map(null, $arr, $arr)); ?> ]]> &example.outputs; array(1) { [0]=> string(5) "wartość" } } array(1) { [0]=> array(2) { [0]=> string(5) "wartość" [1]=> string(5) "wartość" } } array(1) { ["nazwa"]=> string(5) "wartość" } array(1) { [0]=> array(2) { [0]=> string(5) "wartość" [1]=> string(5) "wartość" } } ]]> <function>array_map</function> - tablice asocjacyjne Chociaż array_map nie obsługuje bezpośrednio używania klucza tablicy jako danych wejściowych, można to symulować za pomocą funkcji array_keys. 'First release', 'v2' => 'Second release', 'v3' => 'Third release', ]; // Notatka: Przed 7.4.0, zamiast tego użyj dłuższej składni dla funkcji anonimowych. $callback = fn(string $k, string $v): string => "$k was the $v"; $result = array_map($callback, array_keys($arr), array_values($arr)); var_dump($result); ?> ]]> &example.outputs; string(24) "v1 was the First release" [1]=> string(25) "v2 was the Second release" [2]=> string(24) "v3 was the Third release" } ]]> &reftitle.seealso; array_filter array_reduce array_walk