Примеры
Пример #1 Пример использования array_map()
{
return ($n*$n*$n);
}$a= [1,2,3,4,5];$b=array_map('cube',$a);print_r($b);?>
В результате переменная $b будет содержать:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
Пример #2 Использование array_map() вместе с лямбда-функцией (начиная с PHP 5.3.0)
$func= function($value) {
return$value*2;
};print_r(array_map($func,range(1,5)));?>
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
Пример #3 Пример использования array_map(): обработка нескольких массивов
{
return"Число{$n}по-испански -{$m}";
}
functionmap_Spanish($n,$m)
{
return [$n=>$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);?>
Результат выполнения данного примера:
// вывод $c
Array
(
[0] => Число 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-функции.
Пример #4 Выполнение zip операции с массивами
$a= [1,2,3,4,5];$b= ['one','two','three','four','five'];$c= ['uno','dos','tres','cuatro','cinco'];$d=array_map(null,$a,$b,$c);print_r($d);?>
Результат выполнения данного примера:
Array
(
[0] => 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
)
)
Пример #5
null callback только с
array
$array= [1,2,3];var_dump(array_map(null,$array));?>
Результат выполнения данного примера:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
Пример #6 Использование array_map() со строковыми ключами
$arr= ['stringkey'=>'value'];
functioncb1($a) {
return [$a];
}
functioncb2($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));?>
Результат выполнения данного примера:
array(1) {
["stringkey"]=>
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"
}
}