Reduces the sequence to a single value using a callback function

Ds\Sequence::reduce

(PECL ds >= 1.0.0)

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

說明

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

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

參數

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.

返回值

The return value of the final callback.

範例

示例 #1 Ds\Sequence::reduce() with initial value example

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

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

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

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

以上例程的輸出類似於:

int(30)

示例 #2 Ds\Sequence::reduce() without an initial value example

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

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

以上例程的輸出類似於:

int(21)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *