(PECL ds >= 1.0.0)
Ds\Map::reduce — Réduit la carte à une seule valeur en utilisant une fonction de rappel
Réduit la carte à une seule valeur en utilisant une fonction de rappel.
callback
carry
La valeur de retour du rappel précédent, ou initial
si
c'est la première itération.
key
La clé de l'itération actuelle.
value
La valeur de l'itération actuelle.
initial
La valeur initiale de la valeur de retour. Peut être null
.
La valeur de retour du rappel final.
Exemple #1 Exemple de Ds\Map::reduce() avec valeur initial
<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$callback = function($carry, $key, $value) {
return $carry * $value;
};
var_dump($map->reduce($callback, 5));
// Itérations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 = 5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>
Résultat de l'exemple ci-dessus est similaire à :
int(30)
Exemple #2 Exemple de Ds\Map::reduce() sans valeur initiale
<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->reduce(function($carry, $key, $value) {
return $carry + $value + 5;
}));
// Itérations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 = 6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>
Résultat de l'exemple ci-dessus est similaire à :
int(21)