</*** 作用:查询所有分类生成Tree菜单* @param int $pid 父ID 默认从顶级开始查询*/function toTree($pid=0){ //查询所有顶级分类 //数据库连接在此就不多说了 $model=M('Category');实例化模型 //查询map条件 $map=array( 'pid'=>$pid, ); //查询 $data=$model->where($map)->select(); //定义新数组 用来存生成的html树形菜单 $html_array=array(); //循环分类 $html=''; $padding=0; //缩进 foreach($data as $k=>$v){ //根据path字段的值实现缩进 $path=$v['path']; if($path&&strpos($v['path'],'-')){ $path_array=@explode('-',$v['path']); $count=count($path_array)-1; $padding=$count*20; //下一级分类缩进20像素 } //当前分类数据html $data_array[]=' '.$v['name'].' '; //递归开始查找下级分类 $data_array[]=toTree($v['id']);//把当前分类的id当做父级Id进行递归 } //foreach循环结束合并分类html数组 $html.=implode('',$data_array()); $html.=''; //html树形菜单构造完成,就这么简单,so easy吧! return $html; } 复制代码