无限分类
这里简单写一个无限分类
无限分类的应用场景很多,不如商城的后台管理系统需要添加一个分类,还有管理权限中的角色管理也会用到。
上代码
//生成树方法
public function getTree($data,$pid=0,$level=0){
static $res=array();
foreach($data as $k=>$v){
if($v['pid']==$pid){
$v['level']=$level; //$level 用于识别当前分类的级别
$res[]=$v;
$this->getTree($data,$v['id'],$level+1);//将查询出的$v['id'],作为参数进行递归
//level 加一
}
}
return $res;
}
//执行方法
public function getData(){
//查出所有数据
$data=M('ushop_class')->select();
$res=$this->getTree($data);
dump($res);
}
以上只是做到了重新排序,但是要做到生成树还是要改进一下的如下
public function createTree($data, $pid = 0)
{
$tree = '';
foreach($data as $k => $v)
{
if($v['pid'] == $pid)
{ //父亲找到儿子
$v['son'] = $this->createTree($data, $v['id']);
$tree[] = $v;
// unset($data[$k]);
}
}
return $tree;
}
智商不够笔记来凑