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
[] => -
)