Ds\Set::reduce

(PECL ds >= 1.0.0)

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

Описание

publicDs\Set::reduce(callable$callback, mixed$initial = ?): mixed

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

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

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

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

value

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

initial

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

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

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

Примеры

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

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

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

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

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

Вывод приведённого примера будет похож на:

int(30)

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

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

var_dump($set->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)
To Top