php array_map 和 array_walk, array_filter

回首青春,我发现自己失去了很多宝贵的东西。但我并不难过,因为我知道,以后会失去的更多。

 

array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。

代码例子

// array_map
$aa = array('a', 'b');

$bb = array_map(function($item) {
    $item = $item . '-a' ;
    return $item;
}, $aa);

print_r($aa);
print_r($bb);

输入结果

 

 

array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。

$aa = array('a', 'b');

$bb = array_walk($aa, function($item) {
    $item = $item . '-a' ;
    return $item;
});

print_r($aa);
var_dump($bb);

输出

 很明显,此时的 变量bb 就和上面的完全不同了

 

array_filter 函数,使用方法,三个参数

array_filter(array $array, ?callable $callback = null, int $mode = 0): array

 

function odd($var)
{
    // 返回输入整数是否为奇数(单数)
    return $var & 1;
}
function even($var)
{
    // 返回输入整数是否为偶数
    return !($var & 1);
}
$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));

注意:当array_filter 第二个参数不传时候,array_filter 就相当于一个过滤数值为空返回对应的数组功能,

 

总结

1、array_map的用法是array_map(函数名,数组),而array_walk的用法是array_walk(数组,函数名);
2、array_map里面的函数可以是自定义函数,也可以是php自带的函数,比如trim去除空格等。而array_walk里面的函数只能是自定义的函数
3、array_map不可以改变原函数的值,会获取到新的数组。array_walk是可以改变原函数的值的(加个引用)。
4、array_map必须要有返回值,因为要填充数组。而array_walk可以没有返回值,输出的话要在调用的函数中通过echo来输出。

 

 

posted @ 2022-04-18 08:55  方达达  阅读(14)  评论(0编辑  收藏  举报