PHP | Ds\Map reduce()函数
Ds\Map::reduce()函数是PHP中的一个内置函数,用于通过使用回调函数应用操作将映射缩减为单个值。
句法:
mixed public Ds\Map::reduce( $callback, $initial )
参数:该函数接受上面提到的两个参数,如下所述:
- $callback:此参数保存包含对元素的操作和存储进位的函数。此回调函数包含以下三个参数:
- 携带:它保存前一个回调的返回值,如果是第一次迭代,则为初始值。
- key:保存当前迭代的key。
- value:保存当前迭代的值。
- $initial:该参数保存进位的初始值,可以为NULL。
返回值:该函数返回回调函数返回的最终值。
下面的程序说明了PHP中的Ds\Map::reduce()函数:
方案一:
1, "b" => 3, "c" => 5]);
echo("Map Elements\n");
print_r($map);
// Callback function with reduce function
echo("\nElement after performing operation\n");
var_dump($map->reduce(function($carry, $key, $element) {
return $carry + $element + 2;
}));
?>
输出:
Map Elements
Ds\Map Object
(
[0] => Ds\Pair Object
(
[key] => a
[value] => 1
)
[1] => Ds\Pair Object
(
[key] => b
[value] => 3
)
[2] => Ds\Pair Object
(
[key] => c
[value] => 5
)
)
Element after performing operation
int(15)
方案二:
10, "b" => 20,
"c" => 30, "d" => 40, "e" => 50]);
echo("Original map elements\n");
print_r($map);
$func_gfg = function($carry, $key, $element) {
return $carry * $element;
};
echo("\nMap after reducing to single element\n");
// Use reduce() function
var_dump($map->reduce($func_gfg, 10));
?>
输出:
Original map elements
Ds\Map Object
(
[0] => Ds\Pair Object
(
[key] => a
[value] => 10
)
[1] => Ds\Pair Object
(
[key] => b
[value] => 20
)
[2] => Ds\Pair Object
(
[key] => c
[value] => 30
)
[3] => Ds\Pair Object
(
[key] => d
[value] => 40
)
[4] => Ds\Pair Object
(
[key] => e
[value] => 50
)
)
Map after reducing to single element
int(120000000)
参考: https://www. PHP.net/manual/en/ds-map.reduce。 PHP