目录
array_reduce
函数通常用于对数组中的元素进行累积操作,以得到一个单一的值。在 PHP 中,array_reduce
函数的使用场景包括:
以下是 array_reduce
函数的代码示例:
$array = [1, 2, 3, 4, 5];
$sum = array_reduce($array, function ($carry, $item) {
return $carry + $item;
}, 0);
echo $sum; // 输出 15
$array = [1, 2, 3, 4, 5];
$product = array_reduce($array, function ($carry, $item) {
return $carry * $item;
}, 1);
echo $product; // 输出 120
$strings = ['Hello', ' ', 'World', '!'];
$result = array_reduce($strings, function ($carry, $item) {
return $carry . $item;
}, '');
echo $result; // 输出 "Hello World!"
$array = [1, 2, 3, 4, 5];
$allEven = array_reduce($array, function ($carry, $item) {
return $carry && $item % 2 == 0;
}, true);
var_dump($allEven); // 输出 bool(false),因为数组中有奇数
$array = [
['name'=>'ss', 'income'=>1,'deposit'=>1000],
['name'=>'aa', 'income'=>2,'deposit'=>800],
['name'=>'bb', 'income'=>3,'deposit'=>500],
['name'=>'cc', 'income'=>4,'deposit'=>300],
['name'=>'dd', 'income'=>5,'deposit'=>200],
];
$income = 3;
$allEven = array_reduce($array, function ($carry, $item) use ($income) {
if ($income >= $item['income']) {
$carry['name'] = $item['name'];
$carry['deposit'] = $item['deposit'];
}
return $carry;
}, []);
var_dump($allEven);
// 输出
array(2) {
'name' =>
string(2) "bb"
'deposit' =>
int(500)
}
array_reduce($array, $callback, $initial = null)
在这个语法中:
$array
?是输入数组。$callback
?是回调函数。$initial
?是可选的初始值。array_reduce
函数将回调函数应用于数组中的每个元素,并将结果累积到一个单一的值中。最终,array_reduce
函数返回累积的结果。