一个分享WordPress、Zblog、Emlog、Typecho等主流博客的教程网站!
当前位置:网站首页 > 其他相关教程 > 正文

php去掉数组中的空值array_filter

作者:xlnxin发布时间:2023-09-25分类:其他相关教程浏览:172


导读:array_filter()函数用回调函数过滤数组中的元素。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回true,则把输入数组中的当前键值返回给结果数组。数组键名...

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
function test_odd($var)
{
    return($var & 1);
}
 
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
?>


方法一:array_filter函数+使用empty判断

array_filter 函数是 PHP 自带的一个函数,用于过滤数组中的数据。该函数接受一个数组作为参数,并返回一个新的过滤后的数组。代码实现如下:

    $arr = array("foo", "", "bar", null);

    $new_arr = array_filter($arr, function($value) {
        return !empty($value); // 回调函数,用于过滤数组中的数据
    });

    print_r($new_arr); // 输出 array('foo', 'bar')

在这段代码中,我们首先定义了一个数组 $arr ,该数组包含 4 个元素,其中 2 个元素是空值。然后我们使用 array_filter 函数,并创建一个回调函数,该函数使用 empty 函数来判断数组元素是否为空值。如果元素不为空,则返回 true ,否则返回 false 。使用 array_filter 函数,我们可以获取到过滤后的新数组 $new_arr 。

方法二:使用foreach循环+unset删除

除了使用 PHP 自带的 array_filter 函数,我们也可以使用 foreach 循环配合 unset 函数来删除数组中的空值。具体示例如下:

    $arr = array("foo", "", "bar", null);

    foreach ($arr as $key => $value) {
        if (empty($value)) {
            unset($arr[$key]);
        }
    }

    print_r($arr); // 输出 array('foo', 'bar')

在这段代码中,我们首先定义了一个数组 $arr ,该数组包含 4 个元素,其中 2 个元素是空值。然后我们使用 foreach 循环,遍历数组中的每个元素。如果该元素为空值,我们使用 unset 函数删除该元素。最后使用 print_r 函数输出新的数组。

标签:php