欢迎访问宙启技术站
智能推送

PHP的array_filter()函数使用方法:根据指定的条件过滤数组中的元素。

发布时间:2023-06-26 00:07:53

PHP中的array_filter()函数是一个非常常用的数组处理函数,它可以根据指定的条件过滤数组中的元素,只返回符合条件的元素。

array_filter()函数的基本语法如下:

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

其中,$array参数是待过滤的数组,$callback参数是可选的回调函数,$flag参数是可选的控制flag。

回调函数指的是一个可以传递数组元素作为参数并根据特定条件返回true或false的函数。如果$callback参数不指定,则默认过滤非空元素。

控制flag参数是可选的,用于控制过滤器函数对哪些数组进行过滤。默认值为0,表示对全部数组元素进行过滤。其他可选值为:

- ARRAY_FILTER_USE_KEY:根据键名过滤数组

- ARRAY_FILTER_USE_BOTH:根据键名和键值同时过滤数组

下面将通过具体例子展示array_filter()函数的使用方法。

## 示例一:过滤非空元素

<?php
$arr = array(1, 2, 3, "", 4, null, 5, 0, "a", false);
 
$newArr = array_filter($arr);
print_r($newArr);
?>

输出结果:

Array (
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 4
    [6] => 5
    [8] => a
)

在上面的例子中,$arr数组中包含了一些空值、null值和0值等,我们使用array_filter()函数过滤后只保留了不为false的元素。

## 示例二:根据键名过滤数组

<?php
$arr = array(
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "d" => 0,
    "e" => null,
    "f" => "",
);
 
$newArr = array_filter($arr, function($x) {
    return $x > 0;
}, ARRAY_FILTER_USE_KEY);
 
print_r($newArr);
?>

输出结果:

Array (
    [a] => 1
    [b] => 2
    [c] => 3
)

在上面的例子中,我们使用了回调函数指定了过滤条件,只保留了值大于0的键值对。

## 示例三:根据键值过滤数组

<?php
$arr = array(1, 2, 3, "", 4, null, 5, 0, "a", false);
 
$newArr = array_filter($arr, function($x) {
    return $x > 0;
});
 
print_r($newArr);
?>

输出结果:

Array (
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 4
    [6] => 5
    [8] => a
)

在上面的例子中,我们使用了回调函数指定了过滤条件,只保留了值大于0的元素。

## 小结

array_filter()函数的使用方法非常简单,主要需要了解回调函数和控制flag的用法。在实际开发中,我们经常需要过滤数组中的元素,array_filter()函数就成为了我们的常用工具。