Php 从多维数组中删除空数组

Php 从多维数组中删除空数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我在FormValidator类中使用了一个数组,但在某些情况下,我最终得到了一个类似于下面的数组。但是我想从该数组中删除所有空数组,这样在我的验证中它就不会检查空数组中的值,这是低效的 是否有从多维数组中删除空数组的函数 我知道array\u filter(),但这似乎只适用于数组元素值 array(2) { ["recaptcha_response_field"]=> array(0) { } ["terms"]=> array(0) { } } 尝试此

我在
FormValidator
类中使用了一个数组,但在某些情况下,我最终得到了一个类似于下面的数组。但是我想从该数组中删除所有空数组,这样在我的验证中它就不会检查空数组中的值,这是低效的

是否有从多维数组中删除空数组的函数

我知道
array\u filter()
,但这似乎只适用于数组元素值

array(2)
{
  ["recaptcha_response_field"]=>
  array(0) {
  }
  ["terms"]=>
  array(0) {
  }
}

尝试此操作-这将删除阵列中的空阵列

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

$array['terms2'] = array();


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

print_r($array);

OUTPUT-Array
(
    [recaptcha_response_field] => Array
        (
            [name] => name1
            [email] => email1
        )

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

)

使用带有
array\u filter
count
的简单
foreach
作为回调函数

foreach($arr as $k=>&$arr)
{
    array_filter($arr,'count');
}
print_r($arr);
使用函数从数组中删除元素。要识别空元素,请启动递归循环。希望它能起作用

$array = array(array('foo','bar'), array('hi',''), array('',''), array('','hello')); 
$array = array_filter(array_map('array_filter', $array));
print_r($array);
将显示:

数组([0]=>Array([0]=>foo[1]=>bar)[1]=>Array([0]=> 嗨)[3]=>数组([1]=>你好))


您应该使用数组过滤器。请检查此项