Ds\Sequence::reduce

(PECL ds >= 1.0.0)

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

Descrierea

abstract public Ds\Sequence::reduce ( callable `\$callback` [, mixed `\$initial` ] ) : mixed

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

Parametri

`callback`
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`.

Valorile întoarse

The return value of the final callback.

Exemple

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?> ```

Exemplul de mai sus va afișa ceva similar cu:

```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?> ```

Exemplul de mai sus va afișa ceva similar cu:

```int(21)
```