Heim  >  Artikel  >  Backend-Entwicklung  >  php递归算法 php递归函数无限级分类

php递归算法 php递归函数无限级分类

WBOY
WBOYOriginal
2016-07-25 08:54:02942Durchsuche
  1. /**

  2. * 作用:查询所有分类生成Tree菜单
  3. * @param int $pid 父ID 默认从顶级开始查询
  4. */
  5. function toTree($pid=0){
  6. //查询所有顶级分类
  7. //数据库连接在此就不多说了
  8. $model=M('Category');实例化模型
  9. //查询map条件
  10. $map=array(
  11. 'pid'=>$pid,
  12. );
  13. //查询
  14. $data=$model->where($map)->select();
  15. //定义新数组 用来存生成的html树形菜单
  16. $html_array=array();
  17. //循环分类
  18. $html='';
  19. $padding=0; //缩进
  20. foreach($data as $k=>$v){
  21. //根据path字段的值实现缩进
  22. $path=$v['path'];
  23. if($path&&strpos($v['path'],'-')){
  24. $path_array=@explode('-',$v['path']);
  25. $count=count($path_array)-1;
  26. $padding=$count*20; //下一级分类缩进20像素
  27. }
  28. //当前分类数据html
  29. $data_array[]='
  30. '.$v['name'].'
  31. ';
  32. //递归开始查找下级分类

  33. $data_array[]=toTree($v['id']);//把当前分类的id当做父级Id进行递归
  34. }
  35. //foreach循环结束合并分类html数组
  36. $html.=implode('',$data_array());
  37. $html.='';
  38. //html树形菜单构造完成,就这么简单,so easy吧!
  39. return $html;
  40. }
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn