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

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

WBOY
Freigeben: 2016-07-25 08:54:02
Original
1004 Leute haben es durchsucht
  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. }
复制代码


Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage