定義
array_filter - 用回呼函式過濾陣列中的元素
描述
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次將 array 陣列中的每個值傳遞到 callback 函式,如果 callback 函式回傳 TRUE,則 array 陣列的當前值會被包含在回傳的結果陣列中,
陣列的鍵名保留不變,
如果沒有提供 callback 函式, 將洗掉 array 中所有等值為 FALSE 的元素,
引數 flag 決定callback接收的引數形式:
ARRAY_FILTER_USE_KEY - 接受鍵名作為的唯一引數,整型 1
ARRAY_FILTER_USE_BOTH - 同時接受鍵名和鍵值,整型 2
兩個系統預定義常量,可通過 get_defined_constants 查看,
示例一
<?php
function even($var)
{
// returns whether the input integer is even
return(!($var & 1));
}
$array = array(6, 7, 8, 9, 10, 11, 12);
echo "Even:\n";
print_r(array_filter($array, "even"));
?>
將輸出:
Even:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
示例二
不使用回呼函式
<?php
$entry = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);
print_r(array_filter($entry));
?>
將輸出:
Array
(
[0] => foo
[2] => -1
)
總結
感覺可以將是否保留鍵值作為一個可選引數傳入,因為很多情況下想要重新索引,當然可以用array_values實作,但如果能集成在函式內部就更好了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/63426.html
標籤:PHP
下一篇:CentOS7搭建LNMP
