首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ds\Vector::reduce

(PECL ds >= 1.0.0)

Ds \ Vector :: reduce - 使用回调函数将矢量减少为单个值。

描述

代码语言:javascript
复制
public mixed Ds\Vector::reduce ( callable $callback [, mixed $initial ] )

使用回调函数将矢量减少为单个值。

参数

callback

代码语言:javascript
复制
mixed callback ( mixed $carry , mixed $value )

carry

前一个回调的返回值,如果是第一次迭代,则返回初始值。

value

当前迭代的值。

代码语言:txt
复制
 `initial`   

进位值的初始值。可以为NULL

返回值

最终回调的返回值。

例子

示例#1带初始值示例的Ds \ Vector :: reduce()

代码语言:javascript
复制
<?php
$vector?=?new?\Ds\Vector([1,?2,?3]);

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

var_dump($vector->reduce($callback,?5));

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

上面的例子会输出类似于:

代码语言:javascript
复制
int(30)

示例#2 Ds \ Vector :: reduce()没有初始值示例

代码语言:javascript
复制
<?php
$vector?=?new?\Ds\Vector([1,?2,?3]);

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

上面的例子会输出类似于:

代码语言:javascript
复制
int(21)

← Ds\Vector::push

Ds\Vector::remove →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com