php数组去除空值array_filter函数使用方法 代码实例

我们在日常的项目开发中可能会遇到这样的数组 :

array(1) { [0]=> string(0) “” }

这样的数组你用 isset , empty , if 判断的话都是返回 true 。接着一般都会使用 for foreach while 等函数方法进行循环。所以非常浪费资源有时还会报错。下面我们记录一下函数可以将这种数组过滤掉。

函数名: array_filter() 

调用方式:array_filter(array)

参数说明:array 是操作的对象,我们将删除其中的空元素 。

此时如果我们在用 if 去判断这样的数组的时候就会返回 false 了。

代码调用实例:

<?php
    $array = array('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>"");
    $b= array_filter($array);

    print_r($b);
?>

结果: 
Array ( 
[a] => abc 
[b] => bcd 
[c] => cde 
[d] => def 

foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下:

<?php
foreach( $arr as $k => $v){
    if( !$v )    unset( $arr[$k] );
}

而且自我感觉还挺不错,只是这样的效率并不高也曾经试过,先将$arr转为对象,然后利用对象的特性来删除,因为:foreach是将当前操作的数组进 
行copy,每操作一下foreach,都是copy了一个变量,页面里面如果有太多的foreach,会是一个很大的消耗。

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注