搜索
系统检测到您的用户名不符合规范:

无限级网站栏目-获取树形结构函数

浏览:6046 发布日期:2014年05月13日 分类:功能实现 关键字: 无限级栏目 递归
如果网站采用了无限级栏目结构,我们可以将网站所有栏目获取出来组成一个树形结构。
时隔一年,我发现这种写法确实很幼稚啊!Onethink的写法很好,建议大家看一下!
思路就是先一次性select查询,然后用一个函数转为树形数组!
--------------------------------------------------------------------------
数据库结构:


函数代码:
//获得指定文章分类的子分类组成的树形结构
function cateTree($pid=0,$level=0){
$cate=M('cate');
$array=array();
$tmp=$cate->where("pid='%d'",$pid)->select();
if(is_array($tmp)){
foreach($tmp as $v){
$v['level']=$level;
$array[count($array)]=$v;
$sub=cateTree($v['id'],$level+1);
if(is_array($sub))$array=array_merge($array,$sub);
}
}
return $array;
}
效果[print_r(cateTree(0))]:
Array
(
[0] => Array
(
[id] => 1
[catename] => 测试分类
[pid] => 0
[status] => 0
[level] => 0
)

[1] => Array
(
[id] => 5
[catename] => 二级分类
[pid] => 1
[status] => 0
[level] => 1
)

[2] => Array
(
[id] => 7
[catename] => 三级分类2
[pid] => 5
[status] => 0
[level] => 2
)

[3] => Array
(
[id] => 2
[catename] => 测试分类
[pid] => 0
[status] => 0
[level] => 0
)

[4] => Array
(
[id] => 4
[catename] => 又来测试
[pid] => 0
[status] => 0
[level] => 0
)

[5] => Array
(
[id] => 6
[catename] => 二级分类二
[pid] => 4
[status] => 0
[level] => 1
)

[6] => Array
(
[id] => 8
[catename] => 三级测试
[pid] => 6
[status] => 0
[level] => 2
)

)
其中level表示其层级。
格式化输出效果:

评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
shareroom
积分:650 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /