array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'it', ), 'this' => array ( 0 => 'ds-sequence.reduce.php', 1 => 'Ds\\Sequence::reduce', 2 => 'Reduces the sequence to a single value using a callback function', ), 'up' => array ( 0 => 'class.ds-sequence.php', 1 => 'Ds\\Sequence', ), 'prev' => array ( 0 => 'ds-sequence.push.php', 1 => 'Ds\\Sequence::push', ), 'next' => array ( 0 => 'ds-sequence.remove.php', 1 => 'Ds\\Sequence::remove', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/ds/ds/sequence/reduce.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>

Ds\Sequence::reduce

(PECL ds >= 1.0.0)

Ds\Sequence::reduceReduces the sequence to a single value using a callback function

Descrizione

abstract public function Ds\Sequence::reduce(callable $callback, mixed $initial = ?): mixed

Reduces the sequence to a single value using a callback function.

Elenco dei parametri

callback
function callback(mixed $carry, mixed $value): mixed
carry
The return value of the previous callback, or initial if it's the first iteration.
value
The value of the current iteration.
initial
The initial value of the carry value. Can be null.

Valori restituiti

The return value of the final callback.

Esempi

Example #1 Ds\Sequence::reduce() with initial value example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($sequence->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Il precedente esempio visualizzerĂ  qualcosa simile a:

int(30)

Example #2 Ds\Sequence::reduce() without an initial value example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Il precedente esempio visualizzerĂ  qualcosa simile a:

int(21)