用回调函数过滤数组中的元素:
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
echo "Odd :<br />";
print_r(array_filter($array1, "odd"));
echo "<br />";
echo "Even:<br />";
print_r(array_filter($array2, "even"));
function odd($var)
{
// 返回输入整数是否为奇数(单数)
return $var & 1;
}
function even($var)
{
// 返回输入整数是否为偶数
return !($var & 1);
}
?>
定义和用法
array_filter() 函数用回调函数过滤数组中的元素。
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。
语法
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
参数 | 描述 |
---|---|
array | 必需。规定要过滤的数组。 |
callback | 可选。规定要用的回调函数。 |
flag | 可选。决定 callback 接收的参数形式:ARRAY_FILTER_USE_KEY - callback 接受键名作为的唯一参数ARRAY_FILTER_USE_BOTH - callback 同时接受键名和键值 |
技术细节
返回值: | 返回过滤的数组。 |
---|---|
PHP 版本: | 4.0.6+ |
更多实例
array_filter() 不使用 callback 参数时
<?php
$entry = [
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => '',
5 => '0',
6 => 0,
];
print_r(array_filter($entry));
?>
分享笔记