(PECL ds >= 1.0.0)
Ds\Vector::reduce — Reduce el vector a un solo valor utilizando una retrollamada
Reduce el vector a un solo valor utilizando una 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\Vector::reduce() con valor inicial
<?php
$vector = new \Ds\Vector([1, 2, 3]);
$callback = function($carry, $value) {
return $carry * $value;
};
var_dump($vector->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\Vector::reduce() sin valor inicial
<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->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)