首页 > php数组 > php中利用array_filter过滤数组为空值

php中利用array_filter过滤数组为空值

在我们开发过程中,判断数组为空时你会想到什么方法呢?首先想到的应该是empty函数,不过直接用empty函数判断为空是不对的,因为当这个值是多维数的时候,empty结果是有值的.

其实我们可以利用array_filter函数轻松去掉多维空值,而数组的下标没有改变,下面是举例用法.

array_filter() 函数用回调函数过滤数组中的元素,如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中,并将结果组成一个新的数组,如果原数组是一个关联数组,键名保持不变,代码如下:

<?php 
    $array = array( 
    0 => '霜天部落', 
    1 => false, 
    2 => 1, 
    3 => null, 
    4 => '', 
    5 => 'http://www.phprm.com', 
    6 => '0' 
    ); 
    print_r(array_filter($array));

上面代码输出结果为:

Array 
    ( 
    [0] => 霜天部落 
    [2] => 1 
    [5] => http://www.phprm.com 
    )

这样就把为空或者null或者false的值排除掉,上面我们再进行优化,代码如下:

function delEmpty($v)     
{    
    if ($v==="" || $v==="php")   //当数组中存在空值和php值时,换回false,也就是去掉该数组中的空值和php值 
    {    
        return false;    
    }    
    return true;    
}    
$a=array(0=>"pig",1=>"Cat",2=>"",3=>"php");    
print_r(array_filter($a,"delEmpty"));


教程网址:http://www.phprm.com/shuzu/fs5578.html

欢迎收藏∩_∩但请保留本文链接。

标签:array_filter php过滤数组

发表留言