时间:2021-07-01 10:21:17 帮助过:3人阅读
1.一般在数据库中存储分类,分类之间的关系用parent_id来标识。在开发中有时需要根据分类的级别,展示分类,如下图:

使用递归方法,源代码如下:
/**
*
* @param array $list 为一个二维数组,存放着所有的分类,包含的字段为(分类id,分类名,parent_id)
* @param number $parent_id
* @param number $level
* @return Ambigous <multitype:, number>
*/
function find_level($list,$parent_id=0,$level=1){
foreach($list as $l){
if($l['parent_id']==$parent_id){
$l['level']=$level;
$arr[]=$l;
$child=$this->find_level($list,$l['cat_id'],$level+1);
if(is_array($child)){
$arr=array_merge($arr,$child);
}
}
}
return $arr;
}在使用时,根据实际情况使用find_level($list) 或者 $this->find_level($list) 就可以了
$list=M('category')->field('cat_id,cat_name,parent_id')->select();
$list=$this->find_level($list);
$this->list=$list;
$this->display();前台文件显示代码
<table>
<foreach name="list" item="vo">
<tr>
<td>
<for start="1" end="$vo['level']">
</for>
{$vo.cat_name}<br/>
</td>
</tr>
</foreach>
</table>这里语法使用的是Thinkphp
以上就是之将分类按级别输出实例的详细内容,更多请关注Gxl网其它相关文章!