删除数组中的空值元素

时间:2012-01-30 11:07:05

标签: php

Array
    (
      [0] => 0   //value is int 0 which isn;t empty value
      [1] =>     //this is empty value
      [2] =>     //this is empty value
    )

我想让上面的数组如下,任何人都可以帮助我吗?

非常感谢

Array
    (
      [0] => 0
    )

5 个答案:

答案 0 :(得分:19)

您可以使用array_filter删除空值(null,false,'',0):

array_filter($array);

如果您不想从阵列中删除0,请参阅@ Sabari的回答:

array_filter($array,'strlen');

答案 1 :(得分:5)

您可以使用:

仅删除NULL值:

$new_array_without_nulls = array_filter($array_with_nulls, 'strlen');

删除虚假值:

$new_array_without_nulls = array_filter($array_with_nulls);

希望这会有所帮助:)

答案 2 :(得分:1)

array_filter($array, function($var) {
    //because you didn't define what is the empty value, I leave it to you
    return !is_empty($var);
});

答案 3 :(得分:0)

这是array_filter的典型案例。如果要保留值,首先需要定义一个返回TRUE的函数,如果应该删除它,则需要FALSE

function preserve($value)
{
    if ($value === 0) return TRUE;

    return FALSE;
}

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

然后在回调函数(此处为preserve)中指定什么是空的,什么不是。你没有具体写过你的问题,所以你需要自己做。

答案 4 :(得分:0)

快速找到数字的方法也是零(0)

    var_dump(  
            array_filter( array('0',0,1,2,3,'text') , 'is_numeric'  )
        );
/* 
print :
array (size=5)
  0 => string '0' (length=1)
  1 => int 0
  2 => int 1
  3 => int 2
  4 => int 3

*/