如何从php中的多维数组中删除一个空数组

时间:2013-10-11 02:20:38

标签: php mysql arrays multidimensional-array

我需要一个函数来删除一个数组,其中包含来自php中多维数组的空元素,假设以下是我的数组,我需要找出并删除数组[1]和数组[2],因为元素为空没有值。

$array[] = array(
   'name'=>'name1',
   'email'=>'email1',
   'empty'=>'NOT_EMPTY'
);
$array[] = array(
   'name'=>'name2',
   'email'=>'email2',
   'empty'=>''
);
$array[] = array(
   'name'=>'',
   'email'=>'',
   'empty'=>''
);

当我做的时候

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

print_r($array);

我得到了结果

Array
(
    [0] => Array
        (
            [name] => name1
            [email] => email1
            [empty]=> NOT_EMPTY
        )

    [1] => Array
        (
            [name] => name2
            [email] => email2
        )

    [2] => Array
        (
        )

) 

但预期结果

Array
(

    [0] => Array
        (
            [name] => name2
            [email] => email2
            [empty]=> NOT_EMPTY
        )

)

1 个答案:

答案 0 :(得分:1)

array_filter()仅有unset个等于false的值,而不是整个数组。你将需要循环,如果任何数组缺少元素,则取消设置数组,如:

foreach($array as $key => $a){
  if(count(array_filter($a)) < count($a)){
    unset($array[$key]);
  }
}

可能有更好的方法,我只是简单