# Ds\Sequence::reduce

(PECL ds >= 1.0.0)

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

### Açıklama

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

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

### Bağımsız Değişkenler

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

### Dönen Değerler

The return value of the final callback.

### Örnekler

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

Yukarıdaki örnek şuna benzer bir çıktı üretir:

`int(30)`

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

Yukarıdaki örnek şuna benzer bir çıktı üretir:

`int(21)`