一、定义
array_map() 函数返回经过用户自定义函数循环遍历作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
二、语法
array_map(function,array1,array2,array3...);
三、参数
参数 => 描述/说明
function => 必需。用户自定义函数的名称/函数,或者是 null。
array1 => 必需。规定数组。
array2 => 可选。规定数组。
array3 => 可选。规定数组。
…
四、代码示例
<?php
function myfunction($v){
return($v*$v);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));
?>
输出结果:
Array(
[0] => 1
[1] => 4
[2] => 9
[3] => 16
[4] => 25
)
使用两个数组
<?php
function myfunction($v1,$v2){
if ($v1===$v2){
return "same";
}else
return "different";
}
}
$a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction",$a1,$a2));
?>
输出结果:
Array(
[0] => different
[1] => same
[2] => different
)
当自定义函数名设置为 null 时的情况:
<?php
$a1=array("Dog","Cat");
$a2=array("Puppy","Kitten");
print_r(array_map(null,$a1,$a2));
?>
输出结果:
Array
(
[0] => Array
(
[0] => Dog
[1] => Puppy
)
[1] => Array
(
[0] => Cat
[1] => Kitten
)
)
那么在例如ThinkPHP框架的类中,需要用到 $this->myfunction()
这种方式下应该怎么使用array_map()
函数呢
代码示例:
array_map(array($this,'myfunction'), $arr);
//上面的$this也可以用__CLASS__类的魔术常量代替