PHP - Ds Deque::filter() 函数



PHP 的 Ds\Deque::filter() 函数用于使用回调函数创建一个新的双端队列。回调函数返回一个布尔值('true' 或 'false'),并且根据返回的值,该函数确定是否应将值包含在新双端队列中。

如果未为此函数提供回调函数,则仅包含转换为 'true' 的那些值。

语法

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

public Ds\Deque::filter(callable $callback = ?): Ds\Deque

参数

此函数接受一个名为 'callback' 的可选参数,如下所述 -

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

返回值

此函数返回一个新的双端队列,其中包含回调函数返回 'true' 的所有元素。

示例 1

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

<?php
   $deque = new \Ds\Deque([1, 2, 3, 4, 5]);
   echo "The original deque elements are: \n";
   print_r($deque);
   echo "The new deque elements after the filter: \n";
   print_r($deque->filter(function($value) {
      return $value % 2 == 0;
   }));
?>

输出

以上程序产生以下输出 -

The original deque elements are:
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The new deque elements after the filter:
Ds\Deque Object
(
    [0] => 2
    [1] => 4
)

示例 2

以下是 PHP Ds\Deque::filter() 函数的另一个示例。我们使用此函数创建一个新的双端队列,其中包含回调函数返回 'true' 的所有值 -

<?php
   $deque = new \Ds\Deque([1, 5, 10, 15, 20]);
   echo "The original deque: \n";
   print_r($deque);
   echo "The new deque after filter: \n";
   print_r($deque->filter(function($value) {
      return $value+($value+1) == 42;
   }));
?>

输出

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

The original deque:
Ds\Deque Object
(
    [0] => 1
    [1] => 5
    [2] => 10
    [3] => 15
    [4] => 20
)
The new deque after filter:
Ds\Deque Object
(
)

示例 3

如果省略回调函数,则 PHP Ds\Deque::filter() 函数将创建一个新的双端队列,其中包含所有转换为 'true' 的值,如下所示 -

<?php
   $deque = new \Ds\Deque([10, 20, 30]);
   echo "The original deque: \n";
   print_r($deque);
   echo "The deque after filter: \n";
   print_r($deque->filter());
?>

输出

执行以上程序后,它将生成以下输出 -

The original deque:
Ds\Deque Object
(
    [0] => 10
    [1] => 20
    [2] => 30
)
The deque after filter:
Ds\Deque Object
(
    [0] => 10
    [1] => 20
    [2] => 30
)
php_function_reference.htm
广告