先看一下 数组中的各个参数的作用:
array_map(function,array1,array2,array3…)
function : 是为回调函数,参数为后面的array,一般array有几个 函数的参数要与之对应
array :第一个数组的必须的,其他的可以没有
作用: 将后面的数组参数进行遍历,函数的参数相当于数组遍历后的值,如果数组参差不齐的话,短的数组会在后面自动填充空值使数组都一样长,然后都放在函数里面进行执行,返回新的数组,如果回调函数为null且参数为多个时,相当于将传入的数组合并成二维数组
下面看例子:
case 1
单个数组
<?php
function myfunction($v)
{
if ($v==="Dog")
{
return "Fido";
}
return $v;
}
$a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
?>
输出:
Array ( [0] => Horse [1] => Fido [2] => Cat )
case two
多个数组
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return "same";
}
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 )
case 3
当自定义函数名设置为 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 )
)
可见是将两个一维数组合并成了二维数组