PHP | Ds\Map reduce() Function
The Ds\Map::reduce() function is an inbuilt function in PHP which is used to reduce the map to a single value by applying operations using the callback function.
Syntax:
mixed public Ds\Map::reduce( $callback, $initial )
Parameter: This function accepts two parameters as mentioned above and described below:
- $callback: This parameter holds the function which contains the operation on the elements and store carry. This callback function contains three arguments which are listed below:
- carry: It holds the return value of the previous callback, or initial if it’s the first iteration.
- key: It holds the key of the current iteration.
- value: It holds the value of the current iteration.
- $initial: This parameter holds the initial value of carry, which can be NULL.
Return value: This function returns the final value returned by the callback function.
Below programs illustrate the Ds\Map::reduce() function in PHP:
Program 1:
<?php // Declare a new map$map = new \Ds\Map(["a" => 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; })); ?> |
Output:
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)
Program 2:
<?php // Declare new Map elements$map = new \Ds\Map(["a" => 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)); ?> |
Output:
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)
Reference: https://www.php.net/manual/en/ds-map.reduce.php





Please Login to comment...