Home >Backend Development >PHP Tutorial >求教 多维数组中剔除空记录 (上次解决的有个bug

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

WBOY
WBOYOriginal
2016-06-13 12:16:20890browse

求教 多维数组中删除空记录 (上次解决的有个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]);

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn