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