从php数组中删除空元素

时间:2014-03-16 08:15:34

标签: php arrays

我正在寻找一种从数组中删除空元素的方法。 我知道array_filter()会删除所有空值。

问题是我认为只包含空格,制表符和换行符的字符串也是空的。

那么在这种情况下最好用的是什么?

3 个答案:

答案 0 :(得分:2)

trim()的回调中使用array_filter

$array = array_filter($array, function ($v) { return (bool)trim($v); });

或更短的版本(使用隐式类型转换):

$array = array_filter($array, 'trim');

答案 1 :(得分:0)

php empty()

  

bool empty(混合$ var)

     

确定变量是否为空。变量是   如果它不存在或者其值等于FALSE则认为为空。   如果变量不存在,empty()不会生成警告。

应该做的事情:

foreach($array as $key => $stuff)
{
    if(empty(stuff))
    {
        unset($array[$key]);
    }
}
$array  = array_values($array );// to reinstate the numerical indexes.

答案 2 :(得分:0)

我知道这可能回答晚了,但这是针对那些对解决此问题感兴趣的人。这是我自己的方式。

function my_array_filter($my_array)
{
    $final_array = array();
    foreach ( $my_array as $my_arr ) 
    {
        //check if array element is not empty
        if (!empty($my_arr)) $final_array[] = $my_arr;
    }
    //remove duplicate elements
    return array_unique( $final_array );
}

希望有人觉得这有用。