PHP - Ds Sequence::filter() 函数



PHP 的 Ds\Sequence::filter() 函数用于通过应用可调用对象(回调函数)来创建一个新序列,该对象确定应包含哪些值。

如果应在新序列中包含某个值,则可调用对象应返回“true”。如果没有提供回调函数,则该函数将包含所有转换为 true 的值,并排除转换为“false”的值。

语法

以下是 PHP Ds\Sequence::filter() 函数的语法:

public abstract Ds\Sequence Ds\Sequence::filter([ callable $callback ] )

参数

以下是此函数的参数:

  • callback − 一个可选的可调用函数,如果应包含该值则返回 'true',否则返回 'false'。

以下是callback 函数的语法:

callback(mixed $value): bool

返回值

此函数返回一个包含所有值的新序列。

示例 1

以下程序演示了 PHP Ds\Sequence::filter() 函数的用法:

<?php 
   $seq = new \Ds\Set([10, 20, 30, 40, 50]);
   echo "The sequence elements are: \n";
   print_r($seq);
   echo "The filtered sequence: \n";
   print_r($seq->filter(function($val) {
      return $val % 4 == 0; 
   })); 
?>

输出

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

The sequence elements are:
Ds\Set Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
)
The filtered sequence:
Ds\Set Object
(
    [0] => 20
    [1] => 40
)

示例 2

以下是 PHP Ds\Sequence::filter() 函数的另一个示例。我们使用此函数创建一个新序列,该序列仅包含使用可调用函数的奇数:

<?php 
   $seq = new \Ds\Vector([2, 4, 3, 5, 7, 6, 9, 10]);
   echo "The original sequence: \n";
   print_r($seq);
   echo "The filtered sequence(odd numbers): \n";
   print_r($seq->filter(function($val) {
      return $val % 2 != 0; 
   })); 
?>

输出

上述程序产生以下输出:

The original sequence:
Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 3
    [3] => 5
    [4] => 7
    [5] => 6
    [6] => 9
    [7] => 10
)
The filtered sequence(odd numbers):
Ds\Vector Object
(
    [0] => 3
    [1] => 5
    [2] => 7
    [3] => 9
)
php_function_reference.htm
广告