Heim  >  Artikel  >  Backend-Entwicklung  >  求教 多维数组中剔除空记录 (上次解决的有个bug

求教 多维数组中剔除空记录 (上次解决的有个bug

WBOY
WBOYOriginal
2016-06-13 12:16:20865Durchsuche

求教 多维数组中删除空记录 (上次解决的有个bug

本帖最后由 A9925 于 2015-03-16 18:29:58 编辑 原贴
:http://bbs.csdn.net/topics/390997712



最新疑问,当数组里有一个是 ‘0’ 的值时,会把这个元素删除掉,而实际上这是一条有值的元素
["status"]=>
    string(1) "0"




$a = array(
  array('a' => 0, 'b'=> ''),
  array('a' => 0, 'b'=> ''),
  array('a' => 1, 'b'=> '2'),
);
print_r(array_values(array_no_empty($a)));
 
function array_no_empty($arr) {
  if (is_array($arr)) {
    foreach ( $arr as $k => $v ) {
      if (empty($v)) unset($arr[$k]);
      elseif (is_array($v)) {
        $t = array_no_empty($v);
        if($t) $arr[$k] = $t;
        else unset($arr[$k]);
      }
    }
  }
  return $arr;
}
这个方法再怎么改进,谢谢!
------解决思路----------------------
if( empty() )    改为  if($v === false){ unset .......... }
------解决思路----------------------
 if (empty($v)) unset($arr[$k]);
改为
 if (empty($v) && $v !== 0) unset($arr[$k]);

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn