采用递归实现无限级分类
public function getChild($data){
$items=array();
foreach($data as $v){ //将数组存入$items,且$items的键为$data中的id
$items[$v['id']] = $v;
}
$tree=array();
foreach($items as $item){
if(isset($items[$item['parId']])){ //通过pid判断$items中是否有对应的数组,$itms[0]不存在
$items[$item['parId']]['child'][]=&$items[$item['id']];
}
else{
$tree[]=&$items[$item['id']];
}
}
return $tree;
}
public function sort(){
//假如从数据库里读出来的数据如下:
$data = array(
array('id'=>1,'name'=>"衣服",'parId'=>0),
array('id'=>2,'name'=>"书籍",'parId'=>0),
array('id'=>3,'name'=>"T恤",'parId'=>1),
array('id'=>4,'name'=>"裤子",'parId'=>1),
array('id'=>5,'name'=>"鞋子",'parId'=>1),
array('id'=>6,'name'=>"皮鞋",'parId'=>5),
array('id'=>7,'name'=>"运动鞋",'parId'=>5),
array('id'=>8,'name'=>"耐克",'parId'=>7),
array('id'=>9,'name'=>"耐克",'parId'=>3),
array('id'=>10,'name'=>"鸿星尔克",'parId'=>7),
array('id'=>11,'name'=>"小说",'parId'=>2),
array('id'=>12,'name'=>"科幻小说",'parId'=>11),
array('id'=>13,'name'=>"古典名著",'parId'=>11),
array('id'=>14,'name'=>"文学",'parId'=>2),
array('id'=>15,'name'=>"四书五经",'parId'=>14)
);
//调用方法
$res=$this->getChild($data);
return json($res);
}
上一篇:tp5跨控制器调用别的方法
下一篇:TP5实现无限级分类 树形输出
讨论数量:0