array_map函数

  1. 传入该函数的数组会循环遍历,每次循环都会执行回调方法,循环的时候只会取出value值,不会对key进行操作,在回调方法里面处理之后,要使用return返回value值。
  2. 如果是一个数组,返回结果的key值不会改变。
  3. 如果有多个数组,则循环的时候按照先后循序同时取出每个数组value值(和key值无关),返回结果的key值会从0开始。
  4. 如果几个数组中长度不一致,则循环的次数以最长的数组为主,回调函数处理的结果是一个数组。
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
)
*/

你可能感兴趣的:(array_map函数)