ProfiPHPProfiPHP
Категория: Функции для работы с массивами

Функция Array_map

Функция Array_map применяет callback-функцию ко всем элементам указанных массивов.
array array_map( callable $callback, array $array1 [, array $... ] )
Функция Array_map возвращает массив, содержащий элементы Array1 после их обработки callback-функцией. Количество параметров, передаваемых callback-функции, должно совпадать с количеством массивов, переданным функции Array_map.

Параметр Callback содержит Callback-функцию, применяемую к каждому элементу в каждом массиве.

Параметр Array1 содержит массив, к которому применяется callback-функция.

Параметр "..." являет собой дополнительные массивы для обработки callback-функцией.

Функция Array_map возвращает массив, содержащий все элементы Array1 после применения callback-функции к каждому из них.

Пример использования:
function cube( $n ) {
return( $n * $n * $n );
}
$a = array( 1, 2, 3, 4, 5 );
$b = array_map( "cube", $a );
print_r( $b );
Результат выполнения:
Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )
При обработке двух или более массивов, они имеют одинаковую длину, так как callback-функция применяется параллельно к соответствующим элементам массивов. Если массивы имеют различную длину, более короткие из них дополняется элементами с пустыми значениями до длины самого длинного массива.

Интересным эффектом при использовании этой функции является создание массива массивов, что может быть достигнуто путем использования значения NULL в качестве имени callback-функции.

Если массив-аргумент содержит строковые ключи, то результирующий массив будет содержать строковые ключи тогда и только тогда, если передан ровно один массив. Если передано больше одного аргумента, то результирующий массив будет всегда содержать числовые ключи.

Продемонстрируем еще один пример функции, благодаря которой можно удалить все пробелы у всех элементах массива:
$array = array_map( 'trim', $array );

Добавить комментарий

Имя:
Текст комментария: