(PECL ds >= 1.0.0)
Ds\Set::reduce — Reduce el conjunto a un solo valor utilizando una función de retrollamada
Reduce el conjunto a un solo valor utilizando una función de retrollamada.
callbackcarry
El valor de retorno de la retrollamada anterior, o initial si
es la primera iteración.
valueEl valor de la iteración actual.
initial
El valor inicial del valor de retorno. Puede ser null.
El valor de retorno de la retrollamada final.
Ejemplo #1 Ejemplo de Ds\Set::reduce() con valor inicial
<?php
$set = new \Ds\Set([1, 2, 3]);
$callback = function($carry, $value) {
return $carry * $value;
};
var_dump($set->reduce($callback, 5));
// Iteraciones:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 = 5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>Resultado del ejemplo anterior es similar a:
int(30)
Ejemplo #2 Ejemplo de Ds\Set::reduce() sin valor inicial
<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->reduce(function($carry, $value) {
return $carry + $value + 5;
}));
// Iteraciones:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 = 6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>Resultado del ejemplo anterior es similar a:
int(21)