php 数组怎么去除空值

PHPz
发布: 2023-04-20 09:10:39
原创
1216人浏览过

在 php 编程中,经常会遇到需要将数组中的空值去除的情况,这种情况可能出现在数据清洗、数据过滤等场景中。在 php 中,有几种方法可以达到这个目的,接下来我们将详细介绍这些方法,以及它们的优缺点。

方法一:使用 array_filter() 函数

array_filter() 函数可以返回一个新的数组,其中不满足自定义函数条件的元素被过滤掉。我们可以构造自定义函数来判断元素是否为空值。

示例代码如下:

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

阿里云-虚拟数字人 2
查看详情 阿里云-虚拟数字人
$array = array("foo", "", "bar", null, "baz");
$new_array = array_filter($array, function($item) {
    return !empty($item);
});
登录后复制

该例中,$array 数组中包含了空字符串、null 值和非空元素,通过 array_filter() 函数,我们得到了一个不包含空值的新数组,即 $new_array

立即学习PHP免费学习笔记(深入)”;

需要注意的是, array_filter() 函数默认会去掉以下值:

  • "" (空字符串)
  • 0 (整数 0)
  • 0.0 (浮点数 0)
  • "0" (字符串 "0")
  • false (布尔值 false)
  • null

如果需要去掉其他值,可以通过自定义函数传递第二个参数进行过滤。

优点:array_filter() 函数使用简单,可以自定义过滤条件。

缺点:相比其他方法,此方法性能较差,中大型数组尤其如此。

方法二:使用 foreach 循环去除空值

此方法较为直接,可以通过 foreach 循环遍历数组,然后利用 PHP 的弱类型特性(空值会被自动转换成 false)来判断并去除空值。

示例代码如下:

$array = array("foo", "", "bar", null, "baz");
foreach($array as $key => $value) {
    if(!$value) {
        unset($array[$key]);
    }
}
登录后复制

该例中,我们遍历了 $array 数组,如果元素的值为 false,即被判定为空值,则使用 unset() 函数移除该元素。

优点:相对于 array_filter() 函数,此方法对于大规模数组性能更优。

缺点:需要手动添加条件判断,代码不够简洁。

方法三:使用 array_diff() 函数

array_diff() 函数用于计算数组的值的差集。我们可以使用它来移除空值。

示例代码如下:

$array = array("foo", "", "bar", null, "baz");
$new_array = array_diff($array, array("", null));
登录后复制

该例中,我们使用 array_diff() 函数计算 $array 数组和一个包含空字符串和 null 值的数组的差集,从而得到一个新数组 $new_array。我们可以看到,该方法可以一次性过滤多个值。

需要注意的是,此方法只能过滤硬编码的空值,无法自定义过滤条件。

优点:代码简洁,可以一次性过滤多个值。

缺点:无法自定义过滤条件。

综上,对于大规模数组,我们建议使用方法二;对于小规模数组,可以选择方法一或方法三。

以上就是php 数组怎么去除空值的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号