array_reduce — 用回调函数迭代地将数组简化为单一的值
array_reduce() 将回调函数function 迭代地作用到 input 数组中的每一个单元中,从而将数组简化为单一的值。如果指定了可选参数initial,该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。如果数组为空并且没有传递initial 参数,array_reduce() 返回NULL。
<?php
function rsum($v,$w){
$v += $w;
return $v;
}
function rmul($v,$w){
$v *= $w;
return $v;
}
$a = array(1,2,3,4,5);
$x = array();
$b = array_reduce($a,"rsum");
$c = array_reduce($a,"rmul",10);
$d = array_reduce($x,"rsum",1);
var_dump($a);
var_dump($x);
var_dump($b);
var_dump($c);
var_dump($d);
?>
匿名函数写法:
$arr = array(1,2,3,4,5);
$arr1 = array();
var_dump(array_reduce($arr,function($v,$w){
return $v += $w;
}));
var_dump(array_reduce($arr,function($v,$w){
return $v *=$w;
},10));
var_dump(array_reduce($arr1,function($v,$w){
return $v += $w;
},1));