在商品分类中由于需要使用无限极的分类,自己动手实现如下:
数据表:
public function getCateTree()
{
$list = [];
$data = $this->select();
$list = $this->getTree($data);
return $list;
}
public function getTree($data,$id=0,$level=1)
{
static $list = [];
foreach($data as $key => $value){
if($value['parent_id'] == $id){
$value['level'] = $level;
$list[] = $value;
//$this->getTree($data);
/*foreach($data as $k=>$v){
if($v['parent_id'] == $value['id']){
$list[] = $v;
}
}*/
$this->getTree($data,$value['id'],$level+1);
}
}
return $list;
}
最后生成的列表
tp模板
<select name="parent_id" id="">
<option value="0">|-- 顶级分类</option>
{volist name='category' id='vo'}
<option value="{$vo.id}">|{$vo.level|str_repeat='--',###} {$vo.cname}</option>
{/volist}
</select>
最终显示