array_map Применяет callback-функцию ко всем элементам указанных массивов &reftitle.description; arrayarray_map callablenullcallback arrayarray arrayarrays Функция array_map возвращает массив (&array;), содержащий результаты применения callback-функции к соответствующему элементу arrayarrays, если указано больше массивов), используемого в качестве аргумента callback-функции. Количество параметров, передаваемых callback-функции, должно совпадать с количеством массивов, переданным функции array_map. Лишние входные массивы игнорируются. Если предоставлено недостаточное количество аргументов, выбрасывается ArgumentCountError. &reftitle.parameters; callback callable, применяемая к каждому элементу в каждом массиве. &null; может быть передан в качестве значения callback для выполнения zip операции с несколькими массивами. Если указан только array, array_map вернёт входной массив. array Массив, к которому применяется callback-функция. arrays Дополнительные массивы для обработки callback-функцией. &reftitle.returnvalues; Возвращает массив, содержащий результаты применения callback-функции к соответствующему элементу arrayarrays, если указано больше массивов), используемого в качестве аргумента для callback-функции. Возвращённый массив сохранит ключи аргумента массива тогда и только тогда, когда будет передан ровно один массив. Если передано более одного массива, возвращённый массив будет иметь последовательные целочисленные ключи. &reftitle.changelog; &Version; &Description; &array.changelog.by-ref; &reftitle.examples; Пример использования <function>array_map</function> ]]> В результате переменная $b будет содержать: 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 ) ]]> Использование <function>array_map</function> вместе с лямбда-функцией $value * 2, range(1, 5))); ?> ]]> 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) ]]> Пример использования <function>array_map</function>: обработка нескольких массивов $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; Число 1 по-испански - uno [1] => Число 2 по-испански - dos [2] => Число 3 по-испански - tres [3] => Число 4 по-испански - cuatro [4] => Число 5 по-испански - cinco ) // вывод $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) ) ]]> Обычно при обработке двух или более массивов, они имеют одинаковую длину, так как callback-функция применяется параллельно к соответствующим элементам массивов. Если массивы имеют различную длину, более короткие из них дополняется элементами с пустыми значениями до длины самого длинного массива. Интересным эффектом при использовании этой функции является создание массива массивов, что может быть достигнуто путём использования значения &null; в качестве имени callback-функции. Выполнение zip операции с массивами ]]> &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> только с <parameter>array</parameter> ]]> &example.outputs; int(1) [1]=> int(2) [2]=> int(3) } ]]> Использование <function>array_map</function> со строковыми ключами '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) "value" } } array(1) { [0]=> array(2) { [0]=> string(5) "value" [1]=> string(5) "value" } } array(1) { ["stringkey"]=> string(5) "value" } array(1) { [0]=> array(2) { [0]=> string(5) "value" [1]=> string(5) "value" } } ]]> <function>array_map</function> - ассоциативные массивы Хотя array_map напрямую не поддерживает использование ключа массива в качестве входных данных, это можно смоделировать с помощью array_keys. 'Первый выпуск', 'v2' => 'Второй выпуск', 'v3' => 'Третий выпуск', ]; // Примечание: До версии 7.4.0 вместо этого используйте более длинный синтаксис для анонимных функций. $callback = fn(string $k, string $v): string => "$k - это $v"; $result = array_map($callback, array_keys($arr), array_values($arr)); var_dump($result); ?> ]]> &example.outputs; string(24) "v1 - это Первый выпуск" [1]=> string(25) "v2 - это Второй выпуск" [2]=> string(24) "v3 - это Третий выпуск" } ]]> &reftitle.seealso; array_filter array_reduce array_walk