在PHP 中, array_filter()是一個非常常用的數組處理函數,它用於過濾數組中的元素。 array_filter()函數可以接受兩個參數,第一個參數是數組,第二個是回調函數(可選)。如果沒有提供回調函數,則會使用默認行為。
array_filter(array $array, callable $callback = null, int $mode = 0): array
$array :待處理的數組。
$callback :用於每個數組元素的回調函數。回調函數必須返回true或false ,決定該元素是否保留。
$mode :可選參數,用來指定過濾方式,默認值為0 。
當沒有提供回調函數時, array_filter()會使用默認行為。
如果array_filter()沒有接收到回調函數,那麼它會自動使用一個默認的過濾行為:刪除數組中所有“假值”。在PHP 中,“假值”包括以下幾種:
false
null
0 (整數0)
0.0 (浮點數0)
'' (空字符串)
'0' (字符串'0')
空數組
任何這些假值都會被從數組中移除,只有那些被認為是真值的元素會被保留下來。
假設你有一個數組,如下所示:
$array = [0, 1, false, 2, null, 3, '', '0', 4];
如果我們調用array_filter() ,而沒有傳入回調函數:
$result = array_filter($array);
print_r($result);
輸出將是:
Array
(
[1] => 1
[3] => 2
[5] => 3
[8] => 4
)
可以看到,所有的“假值”都被移除了,數組中只剩下了有效的元素。
這種默認行為非常有用,尤其是在處理需要去除無效數據的數組時。例如,假設你從用戶表單中獲取到一些數據,可能包含了空值、0、或者null 。使用array_filter()默認行為可以快速地清除掉這些無效數據,保留有效的值。
當array_filter()沒有提供回調函數時,它默認會移除數組中的“假值”。
這種默認行為可以幫助開發者輕鬆地過濾掉不必要的數據,尤其在處理不完整或者無效的輸入時非常有用。
其他注意事項:
如果你希望根據自定義的規則來過濾數組,你可以傳入一個回調函數,而不是依賴默認行為。
你也可以使用ARRAY_FILTER_USE_KEY或ARRAY_FILTER_USE_BOTH參數,來在回調函數中同時訪問數組的鍵和值。
相關標籤:
array_filter