请问这段代码到底什么问题? 为什么会报错;

WBOY
풀어 주다: 2016-06-23 13:35:15
원래의
1289명이 탐색했습니다.

Array(    [0] => Array        (            [id] => 3            [fid] => 0            [name] => 333            [son] => Array                (                    [0] => Array                        (                            [id] => 2                            [fid] => 3                            [name] => 2_3                            [son] => Array                                (                                    [0] => Array                                        (                                            [id] => 4                                            [fid] => 2                                            [name] => 2_4                                        )                                )                        )                    [1] => Array                        (                            [id] => 5                            [fid] => 3                            [name] => 2_3                        )                )        )    [1] => Array        (            [id] => 1            [fid] => 0            [name] => 111        ))
로그인 후 복사

这是一个tree结构的数组,我希望在每个数组元素上加一个层级元素;
function tree_add_level($tree){    foreach($tree as &$val){    	if(!isset($val['_level'])){    	    $val['_level']=0;//顶层为0    	}		if(isset($val['son'])){            $val['son']['_level']=$val['_level']+1; //下级加1            tree_add_level($val['son']);        }    }    return $tree;}
로그인 후 복사


但是却提示语法错误,求解决方法,或者其他方式. 谢谢


回复讨论(解决方案)

提示: Warning: Cannot use a scalar value as an array in D:\Web\BOOT\newfile.php on line 28
 tree_add_level($val['son']); 这句代码到底有什么问题? 递归下而已.

你需要判断一下$tree是否是数组

你需要判断一下$tree是否是数组



$tree 和 $tree['son']  100%是数组;  测试的就是上面的案例数组;

你这个数组能粘贴出来吗,我测试一下

你需要判断一下$tree是否是数组



谢谢,我加的

你这个数组能粘贴出来吗,我测试一下



谢谢了,已经解决了; 是逻辑错误,少了层引用;
function tree_add_level(&$tree,$n=0){
    foreach($tree as &$val){
     $val['_level']=$n;
isset($val['son']) && tree_add_level($val['son'],$n+1);
    }
}

警告其实不影响,只要你得到了你想要的结果

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