PHP函數手冊之array_filter()
PHP作為一門優秀的程式語言,有著極為豐富的內建函數和外部擴充函式庫。數組是PHP中非常常見且重要的資料類型,因此PHP的函數庫中針對數組的操作函數也是非常豐富的。 array_filter()函數是其中一個非常實用的函數,它可以用來過濾陣列中的元素,讓我們來詳細了解它的用法。
一、函數概述
array_filter()函數是用來過濾數組中元素的函數,它會傳回一個新的數組,新數組中的元素是由原始數組中的元素所依照某個條件篩選而來。根據官方文件的定義,它的語法如下:
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
其中,$array表示待過濾的原始數組,$callback是可選的回呼函數參數,$flag是可選的遮罩參數。
二、函數參數
#$array表示待過濾的原始數組。這個參數必須是一個陣列類型。如果這個參數不是一個數組,那麼將會傳回一個空數組。
$callback是可選的回呼函數參數。它的回傳值必須是布林型。如果$callback函數沒有給出或為null,則array_filter()函數將會判斷原數組中的所有元素是否為真值,並且傳回值為真的元素將被收集到新數組中。
$flag是可選的遮罩參數。它可以取三個值:
三、函數傳回值
array_filter()函數的回傳值是一個新陣列。新數組中只包含來源數組中符合條件的元素。如果傳回的新陣列是空的,那麼將會傳回一個空的陣列。
四、函數範例
下面我們透過一些範例來示範array_filter()函數的使用方法。
// 濾出陣列中的偶數
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參數傳入。函數傳回一個新的數組,新數組中僅包含原始數組中的偶數。
// 過濾出陣列中的非空元素
$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、空數組都被認為是假值,因此不會被收入新的陣列中。
// 過濾出數組中長度大於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中文網其他相關文章!