在 php 编程中,经常会遇到需要将数组中的空值去除的情况,这种情况可能出现在数据清洗、数据过滤等场景中。在 php 中,有几种方法可以达到这个目的,接下来我们将详细介绍这些方法,以及它们的优缺点。
方法一:使用 array_filter() 函数
array_filter() 函数可以返回一个新的数组,其中不满足自定义函数条件的元素被过滤掉。我们可以构造自定义函数来判断元素是否为空值。
示例代码如下:
$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() 函数默认会去掉以下值:
如果需要去掉其他值,可以通过自定义函数传递第二个参数进行过滤。
优点: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速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号