您的位置:首页 > 其它

array_reduce()使用

2015-12-31 17:29 232 查看
  这个函数的作用是,把数组中的值循环放到回调函数里处理,结果返回一个单一的值。(applies iteratively the
callback
function to the elements of the
array
, so as to reduce the array to a single value.)

这个函数需要两个必须参数和一个可选参数。第一个参数是要操作的数组,第二个是回调函数,第三个是初始值(可选)。

举个例子,比如

function sum($carry, $item)
{
var_dump($carry);
var_dump($item);
echo '<br/>';
$carry += $item;
return $carry;
}

$a = array(
'a' => 1,
'b' => 2,
'c' => 3,
'53' => 4,
);

var_dump(array_reduce($a, "sum")  );


这个的运行结果:

NULL int(1)
int(1) int(2)
int(3) int(3)
int(6) int(4)
int(10)

以上表示,回调函数的第一个参数,可以hold住每次循环后的回调执行结果,以供下次循环使用(第一次执行的时候,这个参数取的是array_reduce()的第三个参数:初始值,没有就是null)。第二个参数就是每次循环的数组的值。

最后的结果就返回了single value,就是10~

再来看一个w3c的例子。

function joinstring($v1,$v2)
{
return $v1 . "-" . $v2;
}

$a=array("Dog","Cat","Horse");

print_r(array_reduce($a,"joinstring"));


这个的返回结果是:-Dog-Cat-Horse

注意字符串前边有个中划线。如果你认真看了第一个例子的说明,这个就不难理解了。

因为array_reduce()没有初始值传入,所以第一次循环时,$v1是null,所以第一次hold住的值就是"-Dog";这下明白了吧哈哈~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: