我在FormValidator
类中使用了一个数组,但在某些时候我最终得到的数组如下所示。但我想从该数组中删除所有空数组,以便在我的验证中它不会检查空数组中的值,这是低效的。
是否有从多维数组中删除空数组的函数?
我知道array_filter()
,但这似乎只适用于数组元素值。
array(2)
{
["recaptcha_response_field"]=>
array(0) {
}
["terms"]=>
array(0) {
}
}
答案 0 :(得分:12)
试试这个 - 这将删除数组内部的空数组!
$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
)
)
答案 1 :(得分:1)
使用简单的foreach
array_filter
和count
作为回拨函数。
foreach($arr as $k=>&$arr)
{
array_filter($arr,'count');
}
print_r($arr);
答案 2 :(得分:1)
$array = array(array('foo','bar'), array('hi',''), array('',''), array('','hello'));
$array = array_filter(array_map('array_filter', $array));
print_r($array);
将显示:
数组([0] =>数组([0] => foo [1] => bar)[1] =>数组([0] => 嗨)[3] =>数组([1] => hello))
答案 3 :(得分:0)
使用array_filter函数从数组中删除元素。识别null元素的fire recursive loop。希望它会奏效!
答案 4 :(得分:0)
您应该使用array_filter。选中此example