如何在php中从多维数组中删除空数组

如何在php中从多维数组中删除空数组,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,我需要一个函数来从php中的多维数组中删除包含空元素的数组。假设下面是我的数组,我需要找出并删除数组[1]和数组[2],因为元素empty没有值 $array[] = array( 'name'=>'name1', 'email'=>'email1', 'empty'=>'NOT_EMPTY' ); $array[] = array( 'name'=>'name2', 'email'=>'email2', 'empty'=>

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

$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
        )

)
array\u filter()
仅自身
unset
s等于false的值,而不是整个数组。您需要循环,如果任何数组缺少元素,则取消设置数组,如:

foreach($array as $key => $a){
  if(count(array_filter($a)) < count($a)){
    unset($array[$key]);
  }
}
foreach($array as$key=>$a){
if(计数(数组_过滤器($a))

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

我们还需要查看您的
array\u filter()
函数代码来了解您是如何得到结果的。它是一个内置函数