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

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

程序员文章站 2024-01-13 11:03:40
...
递归无限分类树,怎么控制深度?
本帖最后由 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且等于静态变量的值,则不再继续递归。
    递归无限分类树,如何控制深度

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

    相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 递归无限分类树,如何控制深度
  • 专题推荐