0

我需要一个函数来删除一个数组,该数组包含 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
        )

)
4

1 回答 1

1

array_filter()就其本身而言,只有unset等于 false 的 s 值,而不是整个数组。您将需要循环,如果任何数组缺少元素,则取消设置数组,例如:

foreach($array as $key => $a){
  if(count(array_filter($a)) < count($a)){
    unset($array[$key]);
  }
}

可能有更好的方法,我很简单

于 2013-10-11T02:44:33.600 回答