您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2025/8/25 4:37:04发布16次查看
原贴
: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() )    改为  if($v === false){ unset .......... }
不太好使, 这样‘0’的值保存下来了
可是 有空字符串的数据没删除掉
 if (empty($v)) unset($arr[$k]);
改为
 if (empty($v)  && $v !== 0) unset($arr[$k]);
多谢 
       && $v !== ‘0’ 好像还有点问题 我再看看
对着呢  。 别的模块调用有点问题
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product