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]=>你好))
您应该使用数组过滤器。请检查此项