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
廣告