La función Ds\Sequence::reduce() es una función incorporada en PHP que se usa para reducir la secuencia a un solo valor usando una función de devolución de llamada.
Sintaxis:
mixed abstract public Ds\Sequence::reduce ( callable $callback [, mixed $initial ] )
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $callback: este parámetro contiene la función que contiene la operación en los elementos y el acarreo de la tienda. Esta función de devolución de llamada contiene dos argumentos, acarreo y valor, donde acarreo es el valor devuelto por la función y valor es el valor del elemento en la iteración actual.
- $inicial: este parámetro contiene el valor inicial de carry, que puede ser NULL.
Valor de retorno: esta función devuelve el valor final de la función de devolución de llamada.
Los siguientes programas ilustran la función Ds\Sequence::reduce() en PHP:
Programa 1:
<?php // Declare new sequence $seq = new \Ds\Vector([1, 2, 3, 4, 5]); echo("Sequence Elements\n"); print_r($seq); // Callback function with reduce function echo("\nElement after performing operation\n"); var_dump($seq->reduce(function($carry, $element) { return $carry + $element + 2; })); ?>
Producción:
Sequence Elements Ds\Vector Object ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Element after performing operation int(25)
Programa 2:
<?php // Declare new sequence $seq = new \Ds\Vector([10, 20, 30, 40, 50]); echo("Original sequence elements\n"); print_r($seq); $func_gfg = function($carry, $element) { return $carry * $element; }; echo("\nSequence after reducing to single element\n"); // Use reduce() function var_dump($seq->reduce($func_gfg, 10)); ?>
Producción:
Original sequence elements Ds\Vector Object ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 [4] => 50 ) Sequence after reducing to single element int(120000000)
Referencia: https://www.php.net/manual/en/ds-sequence.reduce.php