递归函数里有foreach数组的时候,数组是怎么被遍历的??
$arr = Array(Array('a1','a2'),Array('b1','b2'),Array('c1','c2'));
function tree($a){
foreach($a as $row){
tree($a);
}
}
tree($a);
这样的代码,在函数体里面tree($a);递归的时候,它是从数组里第一个元素Array('a1','a2')重新开始遍历吗
当第一层的foreach遍历到第二个元素,又一次tree($a);递归的时候,也是从第一个元素Array('a1','a2')重新开始遍历吗??
------解决方案--------------------
你这个递归都死循环了,会溢出的。。。
------解决方案--------------------
$arr = Array(Array('a1','a2'),Array('b1','b2'),Array('c1','c2'));<br />function tree($a){<br /> foreach($a as $row){ <br /> if(is_array($row)) tree($row);<br /> else echo $row . '<br>';<br /> }<br />}<br />tree($arr);<br />a1
<br />$arr = Array(Array('a1','a2'),Array('b1','b2'),Array('c1','c2'));<br />function tree($a){<br /> if(is_array($a)){ // 这里判断是否需要再递归<br /> foreach($a as $row){<br /> tree($row);<br /> }<br /> }else{<br /> echo $a.'<br>';<br /> }<br />}<br />tree($arr);<br />