Syntax:mixed public DsMap::reduce ($callback, $initial)
Parameter :This function takes two parameters as above and described below:
- $callback:This parameter contains a function that contains an element operation and storage in the transfer. This callback function contains three arguments, which are listed below:
- carry:contains the return value of the previous callback, or the initial value if this is the first iteration.
- key:it contains the key of the current iteration.
- value:contains the value of the current iteration.
- $initial:this parameter contains the initial carry value, which can be NULL.
Return value:This function returns the final value returned a callback function.The following programs illustrate the
Ds / Map::redu()function in PHP:
Program 1:
// Declare a new map
$map
=
new
DsMap ([
"a"
= > 1,
"b"
= > 3,
"c"
= > five]);
echo
(
" Map Elements "
);
print_r (
$map
);
// callback function with downgrade
echo
(
"Element after performing operation"
);
var_dump (
$map
-> reduce (
function
( $carry
,
$key
,
$element
) {
return
$carry
+
$element
+ 2;
}));
?>
Exit:Map Elements DsMap Object ([0] = > DsPair Object ([key] = > a [value] = > 1) [1] = > DsPair Object ([key] = > b [value] = > 3) [2] = > DsPair Object ([key] = > c [value] = > 5)) Element after performing operation int (15)
Program 2:
// Declaring new map elements
$map
=
new
DsMap ([
"a"
= > 10,
" b "
= > 20,
"c"
= > 3 0,
"d"
= > 40,
"e"
= > fifty]);
echo
(
" Original map elements "
);
print_r (
$map
);
$func_gfg
=
function
(
$carry
,
$key
,
$element
) {
return
$carry
*
$element
;
};
echo
(
" Map after reducing to single element "
);
// Using the redu() function
var_dump (
$map
-> reduce (
$func_gfg
, 10));
?>
Exit:Original map elements DsMap Object ([0] = > DsPair Object ([key] = > a [value] = > 10) [1] = > DsPair Object ([key] = > b [value] = > 20 ) [2] = > DsPair Object ([key] = > c [value] = > 30) [3] = > DsPair Object ([key] = > d [value] = > 40) [ 4] = > DsPair Object ([key] = > e [value] = > 50)) Map after reducing to single element int (120000000)
Link: https://www.php.net/manual/en/ds-map.reduce.php