我需要一个函数来删除一个数组,其中包含来自php中多维数组的空元素,假设以下是我的数组,我需要找出并删除数组[1]和数组[2],因为元素为空没有值。
$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
)
)
答案 0 :(得分:1)
array_filter()
仅有unset
个等于false的值,而不是整个数组。你将需要循环,如果任何数组缺少元素,则取消设置数组,如:
foreach($array as $key => $a){
if(count(array_filter($a)) < count($a)){
unset($array[$key]);
}
}
可能有更好的方法,我只是简单