array_map() php,PHP: array_map - Manual

Примеры

Пример #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"

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值