语法:
array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
array_reduce() 将回调函数 callback 迭代地作用到 array 数组中的每一个单元中,从而将数组简化为单一的值。
| 参数 | 必需的 | 描述 |
|---|---|---|
| array | 是 | 输入的数组。 |
| callback | 是 |
callback ( mixed $carry , mixed $item ) : mixed
|
| initial | 否 | 如果指定了可选参数 initial,该参数将在处理开始前使用,或者当处理结束,数组为空时的最后一个结果。 |
-
<?php
-
function sum($carry, $item)
-
{
-
$carry += $item;
-
return $carry;
-
}
-
function product($carry, $item)
-
{
-
$carry *= $item;
-
return $carry;
-
}
-
$a = array(1, 2, 3, 4, 5);
-
$x = array();
-
var_dump(array_reduce($a, "sum")); // int(15)
-
echo '
';
-
var_dump(array_reduce($a, "product", 10)); // int(1200), because: 10*1*2*3*4*5
-
echo '
';
-
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
- ?>
- 用回调函数过滤数组中的单元
- 为数组的每个元素应用回调函数
- 统计数组中所有的值