(php array_filter) PHP函数手册之array_filter()
array_filter()
函数是PHP语言中非常实用的一个函数,它用于过滤数组中的元素。该函数遍历数组中的每个元素,并将每个元素传递给回调函数。如果回调函数返回true,则当前元素会被包含在返回的结果数组中。如果回调函数返回false,则当前元素将被排除。该函数主要用于移除数组中不需要的元素。
基本语法
array_filter(array $array, callable $callback = ?, int $flag = 0): array
$array
是要操作的数组。$callback
是回调函数。如果没有提供$callback
函数,array_filter()
会移除数组中所有等价于FALSE的元素。这包括了空字符串(""
),0
,null
,false
和未定义的变量。$flag
用于控制数组键的行为。0为默认值,表示只传递值给回调函数。ARRAY_FILTER_USE_KEY
表示仅传递键给回调函数。ARRAY_FILTER_USE_BOTH
表示同时传递键与值给回调函数。
开发流程与代码示例
假设我们有一个包含数字的数组,现在我们想过滤出所有大于4的数字。
- 定义数组
首先定义我们要操作的数组。
$numbers = [1, 2, 3, 4, 5, 6, 7];
- 实现回调函数
然后,定义一个符合我们要求的回调函数。这个函数会检查每个元素是否大于4。
function check($num){
return $num > 4;
}
- 使用
array_filter()
函数
最后,使用array_filter()
函数并传入我们的数组和回调函数。
$filtered_numbers = array_filter($numbers, "check");
- 输出结果
打印过滤后的数组,看看结果是否符合我们的预期。
print_r($filtered_numbers);
执行上述代码,我们将得到如下结果。
Array
(
[5] => 5
[6] => 6
[7] => 7
)
注意事项
- 注意数组键名在
array_filter()
之后会保持不变。如果需要重置键名,可以使用array_values()
函数。 - 回调函数的返回值不是以传统意义的true或false来判断,而是根据PHP中的真值和假值来决定。
通过使用array_filter()
函数,可以非常灵活地对数组进行过滤,非常适合用于数据处理和预处理阶段。