PHP函数之array_filter详解
发布时间:2023-07-06 04:50:33
array_filter() 函数用于过滤数组中的元素,并返回一个新的数组。
语法
array_filter(array,function,flag)
参数
- array:必需,要过滤的数组。
- function:可选,规定的函数将被用于对数组元素进行过滤。如果没有提供这个参数,则对数组的每个元素应用默认的过滤函数。
- flag:可选,用于改变如何比较元素/搜索值的行为。可用参数有:
- ARRAY_FILTER_USE_KEY - 默认。使用键名来比较
- ARRAY_FILTER_USE_BOTH - 使用键名和键值来比较
- ARRAY_FILTER_USE_BOTH - 使用键名和键值来比较
返回值
返回一个过滤后的数组。
说明
array_filter() 函数使用回调函数对给定的数组的每个元素进行过滤。如果回调函数返回 true,则数组的当前值被包含在返回的结果数组中,如果返回 false,则数组的当前值将被过滤掉。
示例
<?php
function odd($var)
{
// 返回数组中值为奇数的元素
return($var & 1);
}
function even($var)
{
// 返回数组中值为偶数的元素
return(!($var & 1));
}
$array1 = array("a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :
";
print_r(array_filter($array1,"odd"));
echo "Even:
";
print_r(array_filter($array2,"even"));
?>
输出结果:
Odd:
Array
(
[c]=>3
[e]=>5
)
Even:
Array
(
[0]=>6
[2]=>8
[4]=>10
[6]=>12
)
在上面的例子中,odd() 函数被用作回调函数,对数组 array1 中的每个元素进行过滤。因为 odd() 函数返回 true 的值将会包含在结果数组中,所以最后的结果数组中只包含了奇数。
同样的,even() 函数被用作回调函数,对数组 array2 中的每个元素进行过滤。因为 even() 函数返回 true 的值将会包含在结果数组中,所以最后的结果数组中只包含了偶数。
