如何在php中从多维数组中删除空数组
我需要一个函数来从php中的多维数组中删除包含空元素的数组。假设下面是我的数组,我需要找出并删除数组[1]和数组[2],因为元素empty没有值如何在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'=>
$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()
函数代码来了解您是如何得到结果的。它是一个内置函数