欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

递归函数里有foreach数组的时候,数组是如何被遍历的?

程序员文章站 2022-05-18 13:05:57
...
递归函数里有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'));
function tree($a){
foreach($a as $row){
if(is_array($row)) tree($row);
else echo $row . '
';
}
}
tree($arr);
a1
a2
b1
b2
c1
c2

------解决方案--------------------
你的递归没有结束条件,会死循环。
结束条件是,如果元素不是数组则不需要递归了。


$arr = Array(Array('a1','a2'),Array('b1','b2'),Array('c1','c2'));
function tree($a){
if(is_array($a)){ // 这里判断是否需要再递归
foreach($a as $row){
tree($row);
}
}else{
echo $a.'
';
}
}
tree($arr);
递归函数里有foreach数组的时候,数组是如何被遍历的?

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频