> 백엔드 개발 > PHP 튜토리얼 > 求教 多维数组中删除空记录 (上次解决的有个bug

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

WBOY
풀어 주다: 2016-06-23 13:38:26
원래의
1067명이 탐색했습니다.

原贴
: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’

好像还有点问题 我再看看

对着呢  。 别的模块调用有点问题

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿