Ds\Deque::reduce

(PECL ds >= 1.0.0)

Ds\Deque::reduceУменьшает коллекцию до одного значения, используя callback-функцию

Описание

public Ds\Deque::reduce ( callable $callback , mixed $initial = ? ) : mixed

Уменьшает коллекцию до одного значения, используя callback-функцию.

Список параметров

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

Значение, возвращенное предыдущим запуском функции или initial, если функция запущена в первый раз.

value

Значение текущей итерации.

initial

Начальное значение параметра carry. Можно указать null.

Возвращаемые значения

Значение, возвращенное окончательным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Deque::reduce() с начальным значением

<?php
$deque 
= new \Ds\Deque([123]);

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

var_dump($deque->reduce($callback5));

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

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Deque::reduce() без начального значения

<?php
$deque 
= new \Ds\Deque([123]);

var_dump($deque->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
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)