当前位置:Gxlcms > PHP教程 > 递归无限分类树,如何控制深度

递归无限分类树,如何控制深度

时间:2021-07-01 10:21:17 帮助过:8人阅读

递归无限分类树,怎么控制深度?
本帖最后由 XingGuangYingYing 于 2014-03-19 02:52:34 编辑

代码如下,如 echo nav(0,0); 就像是全部 nav(0,1);就显示一级 $deep 应该怎么判断呢?

另外,递归效率是个问题,可否一次性从数据库取出来,然后数组变啊变的 输出树形目录呢 用ul li包围

function nav($parent,$deep){
$res = '';
$sql = mysql_query("SELECT * from menu where parent = $parent order by ordering DESC");

while($row = mysql_fetch_array($sql)){

$res .= '
  • '.$row['cname'].'';

    $t = nav($row['id'],$deep);
    $res .= '
      '.$t.'
    ';


    $res .= '
  • ';
    }
    return $res;
    }


    }
    ------解决方案--------------------
    引用传递

    $deep = 0;
    function nav($parent,&$deep){
    $depp++;
    }
    ------解决方案--------------------
    深度控制可以定义一个静态变量,每次执行一次递增,如果$deep大于0且等于静态变量的值,则不再继续递归。

    人气教程排行