array_filter() 过滤数组中的空白元素

<?php
function myfunction($v) 
{
if ($v==="Horse")
    {
    return true;
    }
return false;
}
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");
print_r(array_filter($a,"myfunction"));
?>

 

判断数组中元素是否为空的时候,一般用foreach,因为具体应用中多是要foreach,其实如果单纯的过滤php空数组的话,可以使用php函数array_filter() .

array array_filter ( array [, callback callback] )

array_filter() 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

如果没有提供 callback 函数,array_filter() 将删除 array 中所有等值为 FALSE 的条目.这也就是过滤数组空白元素的精华所在.
如下例:
Php代码

<?php   
$entry = array(   
              0 => 'k686绿色软件',   
              1 => false,   
              2 => 1,   
              3 => null,   
              4 => '',   
              5 => 'http://www.k686.com',   
              6 =>'0'  
           );   
print_r(array_filter($entry));   
?>   


上面代码输出结果为:

Array 
( 
    [0] => k686绿色软件 
    [2] => 1 
    [5] => http://www.k686.com 
) 

 


可以看出,false,null,和真正的''空白以及0都被过滤了,而且数组的下标没有改变.

$arr=array_filter($arrl);

也可以这样用的。

posted @ 2012-12-26 14:43  KoMiles  阅读(1283)  评论(0编辑  收藏  举报