【函數分享】每日PHP函數分享(2021-3-1)
- 2021 年 3 月 1 日
- 筆記
- php, 夢中程式設計師, PHP函數, array_filter
array_filter — 使用回調函數過濾數組的元素
說明
array_filter ( array $array , callable|null $callback = null , int $mode = 0 ) : array
遍歷 array 數組中的每個值,並將每個值傳遞給 callback 回調函數。如果 callback 回調函數返回 true,則將 array 數組中的當前值返回到結果 array 數組中。
返回結果 array 數組的鍵名(下標)會維持不變,如果 array 參數是索引數組,返回的結果 array 數組鍵名(下標)可能會不連續。可以使用 array_values() 函數對數組重新索引。
參數
array:要遍歷的數組
callback:使用的回調函數,如果沒有提供 callback 回調函數,將刪除數組中 array 的所有「空」元素。有關 PHP 如何判定「空」元素,請參閱 empty() 。
mode:決定哪些參數發送到 callback 回調的標誌:
-
ARRAY_FILTER_USE_KEY- 將鍵名作為callback回調的唯一參數,而不是值 -
ARRAY_FILTER_USE_BOTH- 將值和鍵都作為參數傳遞給callback回調,而不是僅傳遞值
默認值為 0 ,只傳遞值作為 callback 回調的唯一參數。
返回值
返回過濾後的數組。
範例
<?php
function odd($var)
{
// 返回輸入整數是否為奇數(單數)
return $var & 1;
}
function even($var)
{
// 返回輸入整數是否為偶數
return !($var & 1);
}
$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>
輸出
Odd :
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Even:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)

