array_filter
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_filter — 用回調函數過濾數組中的單元
說明
array array_filter ( array array[,callable callback [, int $flag = 0 ]] )
依次将 array 數組中的每個值傳遞到 callback 函數。如果 callback 函數傳回 TRUE,則 input 數組的目前值會被包含在傳回的結果數組中。數組的鍵名保留不變。
參數
array
要循環的數組
callback
使用的回調函數
如果沒有提供 callback 函數, 将删除 input 中所有等值為 FALSE 的條目。更多資訊見轉換為布爾值。
flag
決定callback接收的參數形式:
ARRAY_FILTER_USE_KEY - callback接受鍵名作為的唯一參數
ARRAY_FILTER_USE_BOTH - callback同時接受鍵名和鍵值
傳回值
傳回過濾後的數組。
範例
Example #1 array_filter() 例子
<?php
function odd($var)
{
// returns whether the input integer is odd
return($var & );
}
function even($var)
{
// returns whether the input integer is even
return(!($var & ));
}
$array1 = array("a"=>, "b"=>, "c"=>, "d"=>, "e"=>);
$array2 = array(, , , , , , );
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>
以上例程會輸出:
Odd :
Array
(
[a] =>
[c] =>
[e] =>
)
Even:
Array
(
[] =>
[] =>
[] =>
[] =>
)
Example #2 array_filter() 無 callback
<?php
$entry = array(
=> 'foo',
=> false,
=> -,
=> null,
=> ''
);
print_r(array_filter($entry));
?>
以上例程會輸出:
Array
(
[] => foo
[] => -
)