📜  PHP | Ds\Map reduce()函数

📅  最后修改于: 2022-05-13 01:56:20.415000             🧑  作者: Mango

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