Ds\Sequence::reduce

(PECL ds >= 1.0.0)

Ds\Sequence::reduceСхлопывает коллекцию до одного значения используя callback-функцию

Описание

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

Схлопывает коллекцию до одного значения используя callback-функцию.

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

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

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

value

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

initial

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

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

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

Примеры

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

<?php
$sequence 
= new \Ds\Vector([123]);

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

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

// Итерации:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

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

int(30)

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

<?php
$sequence 
= new \Ds\Vector([123]);

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

// Итерации:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

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

int(21)
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top