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

WBOY
풀어 주다: 2016-06-13 11:53:56
원래의
1504명이 탐색했습니다.

递归无限分类树,怎么控制深度?

本帖最后由 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且等于静态变量的值,则不再继续递归。
    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿