PHP - Ds Vector::reduce() 函数



PHP 的 Ds\Vector::reduce() 函数通过对每个向量元素应用回调函数来将向量简化为单个值。回调函数是一个对每个向量元素进行操作并返回结果的函数。

如果指定了初始参数值,则回调函数将从此初始值开始,并继续处理每个向量元素,将它们组合起来生成最终结果,最终简化为单个值。

语法

以下是 PHP Ds\Vector::reduce() 函数的语法:

public mixed Ds\Vector::reduce( callable $callback [, mixed $initial ] )

参数

以下是此函数的参数:

  • callback - 回调函数对每个向量元素进行操作。
  • initial - 传递值的初始值,可以为 null。

以下是callback函数的语法:

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

返回值

此函数返回最终回调函数的值。

示例 1

以下是 PHP Ds\Vector::reduce() 函数的基本示例:

<?php 
   $vector = new \Ds\Vector([1, 2, 3, 4, 5]);
   echo("The original vector elements: \n"); 
   print_r($vector);
   echo("The vector reduce to single value is: "); 
   print_r($vector->reduce(function($carry, $element) { 
      #adding
      return $carry + $element;
   }));
?>

输出

以上程序产生以下输出:

The original vector elements:
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The vector reduce to single value is: 15

示例 2

如果我们提供初始值,则回调函数将从此值开始,然后继续处理向量元素。

以下是 PHP Ds\Vector::reduce() 函数的另一个示例。我们使用此函数将此向量 ([1, 2, 3, 4, 5]) 简化为单个值:

<?php 
   $vector = new \Ds\Vector([1, 2, 3, 4, 5]);  
   echo("The original vector elements: \n"); 
   print_r($vector); 
   $func = function($carry, $element) { 
      return $carry  * $element; 
   }; 
   echo("The vector after reducing to single element: "); 
   print_r($vector->reduce($func, 10));
?>

输出

执行以上程序后,将显示以下输出:

The original vector elements:
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The vector after reducing to single element: 1200
php_function_reference.htm
广告