- 传入该函数的数组会循环遍历,每次循环都会执行回调方法,循环的时候只会取出value值,不会对key进行操作,在回调方法里面处理之后,要使用return返回value值。
- 如果是一个数组,返回结果的key值不会改变。
- 如果有多个数组,则循环的时候按照先后循序同时取出每个数组value值(和key值无关),返回结果的key值会从0开始。
- 如果几个数组中长度不一致,则循环的次数以最长的数组为主,回调函数处理的结果是一个数组。
function myfunction($v1, $v2)
{
if ($v1 === $v2) {
return 'same';
}
return 'different';
}
function test($v1)
{
return $v1 . '1';
}
$a1 = array('11' => 'Horse', '22' => 'Dog', '33' => 'Cat');
print_r(array_map('test', $a1));
/*
Array
(
[11] => Horse1
[22] => Dog1
[33] => Cat1
)
*/
$a1 = array('Horse', 'Dog', 'Cat');
$a2 = array('Cow', 'Dog', 'Rat');
print_r(array_map('myfunction', $a1, $a2));
/*
Array
(
[0] => different
[1] => same
[2] => different
)
*/
$a1 = array('Horse', 'Dog', 'Cat');
$a2 = array('Cow', 'Dog', 'Rat', 'sf');
print_r(array_map('myfunction', $a1, $a2));
/*
Array
(
[0] => different
[1] => same
[2] => different
[3] => different
)
*/
$a1 = array('11' => 'Horse', '22' => 'Dog', '33' => 'Cat');
$a2 = array('Cow', 'Dog', 'Rat');
print_r(array_map('myfunction', $a1, $a2));
/*
Array
(
[0] => different
[1] => same
[2] => different
)
*/