首頁  >  文章  >  後端開發  >  PHP函數手冊之array_filter()

PHP函數手冊之array_filter()

PHPz
PHPz原創
2023-06-20 11:39:107957瀏覽

PHP函數手冊之array_filter()

PHP作為一門優秀的程式語言,有著極為豐富的內建函數和外部擴充函式庫。數組是PHP中非常常見且重要的資料類型,因此PHP的函數庫中針對數組的操作函數也是非常豐富的。 array_filter()函數是其中一個非常實用的函數,它可以用來過濾陣列中的元素,讓我們來詳細了解它的用法。

一、函數概述

array_filter()函數是用來過濾數組中元素的函數,它會傳回一個新的數組,新數組中的元素是由原始數組中的元素所依照某個條件篩選而來。根據官方文件的定義,它的語法如下:

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

其中,$array表示待過濾的原始數組,$callback是可選的回呼函數參數,$flag是可選的遮罩參數。

二、函數參數

  1. $array

#$array表示待過濾的原始數組。這個參數必須是一個陣列類型。如果這個參數不是一個數組,那麼將會傳回一個空數組。

  1. $callback

$callback是可選的回呼函數參數。它的回傳值必須是布林型。如果$callback函數沒有給出或為null,則array_filter()函數將會判斷原數組中的所有元素是否為真值,並且傳回值為真的元素將被收集到新數組中。

  1. $flag

$flag是可選的遮罩參數。它可以取三個值:

  • ARRAY_FILTER_USE_KEY - 為回呼函數傳遞鍵名而不是值。
  • ARRAY_FILTER_USE_BOTH - 為回呼函數傳遞鍵名和值。
  • 預設值為0,表示預設僅為回呼函數傳遞值。

三、函數傳回值

array_filter()函數的回傳值是一個新陣列。新數組中只包含來源數組中符合條件的元素。如果傳回的新陣列是空的,那麼將會傳回一個空的陣列。

四、函數範例

下面我們透過一些範例來示範array_filter()函數的使用方法。

  1. 過濾偶數

// 濾出陣列中的偶數
function filter_odd($var)
{

return ($var & 1) == 0;

}
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$filtered_arr = array_filter($arr, "filter_odd");
print_r($filtered_arr );

#輸出:

Array
(

[1] => 2
[3] => 4
[5] => 6
[7] => 8
[9] => 10

)

在這個範例中,我們定義了一個回呼函數filter_odd()來過濾數組中的偶數。在呼叫array_filter()函數時,將這個回呼函數作為$callback參數傳入。函數傳回一個新的數組,新數組中僅包含原始數組中的偶數。

  1. 篩選中的空值

// 過濾出陣列中的非空元素
$arr = ["", "hello", NULL, " world", false, 0, [], " ", "test"];
$filtered_arr = array_filter($arr);
print_r($filtered_arr);

#輸出:

Array
(

[1] => hello
[3] => world
[7] =>  
[8] => test

)

在這個範例中,我們沒有指定$callback參數,array_filter()函數會判斷陣列中所有的元素是否為真值,而空字串、NULL、false、0、空數組都被認為是假值,因此不會被收入新的陣列中。

  1. 過濾出數組中長度大於2的字串

// 過濾出數組中長度大於2的字串
$arr = ["php" , "html", "css", "js"];
$filtered_arr = array_filter($arr, function($var) {

return strlen($var) > 2;

});
print_r($filtered_arr);

輸出:

Array
(

[0] => php
[1] => html
[2] => css

)

在這個範例中,我們沒有指定$flag參數,但我們使用了一個匿名函數作為$callback,這個函數用來判斷字串是否長度大於2。函數傳回一個新的數組,其中僅包含長度大於2的字串。

五、總結

array_filter()函數是一個非常實用的陣列運算子,可以幫助我們過濾掉不需要的數據,只保留有用的數據,讓數據更精簡。它能夠帶來很大的便利,可以輕鬆完成一些陣列操作任務,提高PHP程式的開發效率。

以上是PHP函數手冊之array_filter()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn