php 数组 去掉null

在 PHP 开发中,数组是非常常用的一种数据结构,它可以容纳不同类型的值,包括数字、字符串、布尔值等。然而,在处理大量数据时,有时候我们会遇到需要将数组中的 null 值去除的情况,本文将会介绍如何通过 PHP 来实现这一操作。

数组中的 null 值可能来自不同的情况,比如使用数组赋值时没有显式地指定某个元素的值、从数据库查询结果中获取的数据、或者通过某些函数处理后返回的值等。在这些情况下,数组元素的值为 null 并不影响程序的正常运行,但在某些场合下,为了方便数据的处理或展示,我们需要将这些 null 值剔除。

首先,我们可以使用 PHP 内置函数 array_filter 来实现对数组中 null 元素的过滤。array_filter 函数能够返回一个新的数组,其中只包含满足指定条件的元素,我们可以将此函数的回调函数设置为过滤掉值为 null 的元素。下面是一个简单的示例:

1

2

3

4

5

$array = [1, hello, null, 3.14, null, false];

$newArray = array_filter($array, function($value) {

return !is_null($value);

});

print_r($newArray);

登录后复制

在上述代码中,我们创建了一个包含不同类型元素的数组 $array,然后使用 array_filter 函数和一个匿名函数来过滤数组元素,最终得到一个新的数组 $newArray,其中过滤掉了值为 null 的元素。运行结果如下:

1

2

3

4

5

6

7

Array

(

[0] => 1

[1] => hello

[3] => 3.14

[5] =>

)

登录后复制

可以看到,新的数组 $newArray 只包含四个元素,其中两个 null 值已经被过滤掉了。

除了使用 array_filter 函数,我们还可以使用 foreach 循环遍历数组,将值为 null 的元素剔除。下面是一个示例代码:

1

2

3

4

5

6

7

8

$array = [1, hello, null, 3.14, null, false];

$newArray = [];

foreach ($array as $value) {

if (!is_null($value)) {

$newArray[] = $value;

}

}

print_r($newArray);

登录后复制

此代码与前一个示例相比,在功能上是相同的,只是使用了 foreach 循环来实现。运行结果与前一个示例的结果相同。

无论是使用 array_filter 函数还是 foreach 循环,都可以实现对数组中 null 值的过滤。在实际开发过程中,我们可以根据具体情况选择使用哪种方式。对于大规模的数据处理,使用 array_filter 函数能够更高效地过滤掉数组中的 null 值,而对于简单的数据处理,使用 foreach 循环可能更为方便。

除了过滤 null 值,我们还可以过滤数组中满足其他条件的元素。由于 array_filter 函数是根据回调函数的返回值来决定是否保留该元素的,因此,我们可以自定义回调函数来实现对数组元素的定制化过滤。例如,下面是一个示例代码,它过滤掉长度大于 5 的字符串元素:

1

2

3

4

5

$array = [1, hello, null, world, test, 3.14, null, false];

$newArray = array_filter($array, function($value) {

return !is_null($value) && (is_numeric($value) || strlen($value) <= 5);

});

print_r($newArray);

登录后复制

运行结果如下:

1

2

3

4

5

6

7

8

9

Array

(

[0] => 1

[1] => hello

[3] => world

[4] => test

[5] => 3.14

[7] =>

)

登录后复制

可以看到,长度大于 5 的字符串元素被过滤掉了,其他元素保留。

总之,通过 PHP 的内置函数或自定义回调函数,我们可以很方便地实现对数组中 null 值的过滤,并灵活处理其他的过滤需求。了解和掌握这些技巧,能够帮助我们更加高效地处理数组相关的任务。

以上就是php 数组 去掉null的详细内容,更多请关注php中文网其它相关文章!

TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.
QQ交流群 922260178
© 版权声明
THE END
喜欢就支持一下吧
点赞1.4W+ 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容