基于递归实现的php树形菜单代码


本文实例讲述了基于递归实现的php树形菜单代码。分享给大家供大家参考。具体实现方法如下:

开发电子商务网站的时候,做了这个显示树形菜单的功能,用的递归实现的PHP树形菜单函数。具体代码如下:

复制代码 代码如下:
public function procCategory($sid,$pid){
$return = array();
$key = 0;
static $arr = array(); //分类级别参考数组
$sql =  "select cid,pcid,name from shop_goods_catalog where sid='{$sid}' and pcid = '{$pid}'";
$result = $this->__db->query($sql);
 
while($row=$this->__db->fetchArray($result)){
$nbsp = '';
if($row['pcid']==0){
$arr = array();
}
$arr[] = $row['pcid'];
//顶级分类不添加树形结构标识。
if($row['pcid']>0){
//根据分类级别添加树形结构标识
$key = array_search($row['pcid'],$arr);
for($i=0;$i<$key;$i++){
$nbsp .= '  ';
}
//重构分类级别参考数组
if(count($arr)>1&&count(array_keys($arr,$row['pcid']))>1){
$arr = array_slice($arr,0,$key+1);
}
}
$row['name'] = $nbsp.$row['name'];
$row['level'] = $key; //分类级别,0为顶级分类,1为二级分类,用于样式设定或其他需求
$return[] = $row;
$r = $this->procCategory($sid,$row['cid']);
$return = array_merge($return,$r);
}
 
return $return;
}

由于递归的效率相对较低,如果注重程序效率的话,不要用此方法,或者对此方法进行改进使用。

希望本文所述对大家的PHP程序设计有所帮助。



相关阅读:
利用CSS span实现双语菜单的方法教程
PHP批量生成静态HTML的简单原理和方法
Win10最新预览版怎么还原以前Win7或Win8?
MySQL数学函数简明总结
MySQL页面访问统计及排名情况
JavaScript实现随机替换图片的方法
iOS应用中发送HTTP的get请求以及HTTP异步请求的方法
mysql动态游标学习(mysql存储过程游标)
Win8.1如何关闭动态磁贴让耳朵清静下
win7 64位系统提示"Windows7不能识别网络打印机"的故障原因及解决方法
C#判断某程序是否运行的方法
Win10/Win8.1原生支持FFmpeg:视频格式通吃
jQuery事件绑定on()与弹窗实现代码
C#中事件的继承实例分析
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 葫芦岛-枣强 岭北-齐齐哈尔 祥云-弥渡 辉河-德仁 界首市-无锡 沈阳-松树林 松江-甘旗卡 杭州-泊头 金昌-清水 乾安-怀柔北 阜阳-蓝村 雅鲁-博克图 南口-四道湾 龙岩-莆田 迎春-亚布力 平洋-济南东 福州-重庆 枣庄-无为 绥芬河-苏家屯 韶关-丰都 灵璧-郑州 中和-新彦 达州-深圳西 秦皇岛-驻马店西 九江-新县 高安-义乌 琼海-万宁 曹子里-宝坻 闽清北-南京南 南召-南充 高村-平社 公主埂-桑根达来 保定-横道河子 青州市-兰考南 东来-水地 巢湖-西安 双辽-牙克石 莱阳-岳阳 湘潭北-厦门北 龙井-松江河 吴桥-柳河 江油-玉门 亳州-衡阳 白洋淀-长春西 公主岭-海阳 丹阳-葫芦岛 柳河-石桥子 芜湖-樟树东 金华南-长沙南 泔溪-彭水 乐武-永郎 苏雄-凉红 龙岩-惠山 哲里木-大陆号 淮南-上海南 下花园-丰镇 新化-娄底 东明村-新窝铺 白洋淀-南阳 南票-金场堡 苏家屯-铁力 萨拉齐-阳新 林口-青山 巨野-义乌 涡阳-滕州 綦江-大河坝 大乌苏-大杨树 清水-达州 史家铺-千阳 石门子-新绰源 昭通北-王场 武夷山东-湖州 兰陵北-蓝村 高头-翠岗 宝鸡-黄石 新乡东-滨海 建瓯西-贵阳北 巩义-邹城 榆树川-江密峰 许昌-长春 1813次火车列车订票_1813次火车列车订票
佛山南海大沥车站到东莞长安的车有没有()
请问从天津滨海机场怎么回武清杨村最好是公交车具体是几路
我是湖北荆门人,我想到安徽怀宁著名诗人海子的故里去看看他
有没有三亚到临沂 或者是三亚到济南、青岛的汽车客车啊 有没有人
从怀化往石门县方向去的列车火车在开车前几小时还能不能买到啊
本人想订2011年2月9日岳阳到上海的动车票,提前到什么时候订
佛山祖庙到广州火车站,坐地铁是不是直达到的,几点到几点可
抗日战争时期日本对舟山的侵害
从十堰火车站或者汽车站打出租车到郧西要多久多少钱
上海到武汉有多远
谁知道江苏苏州到河北邯郸坐客车要多少钱
我想从焦作武陟县城到郑州航海东路,一是走黄河浮桥,一是走
从襄樊到东营该怎么做火车或汽车
上海到西宁的火车列车
酒泉飞天数字影院的影讯哪里能看到?而且是每天最新的。
我94年户口调到南昌县莲塘镇县机械厂了。一直没有参加工作。
郑州市从列车火车站附近发车到大石桥的公交线路都有哪几路
青岛沧口汽车客车站有没有去河南周口的直达车
南充市哪里有出租自行车(脚踏车,双人的)的地方
宁波到杭州火车列车时刻票
河源的龙源温泉
哈尔滨中山路在那条街可以转到果戈里大街
自驾车从文登到日照怎么坐车?急!!
有哪些快递公司可以从安阳市区寄东西到南阳市西峡县双龙镇,
7.22日全食 新余(28N,115E)看的到么
参观恩施州博物馆的作文600字
请问谁知道有没有从聊城到东营的火车列车,直达或是过路的都可以.
从密山到沈阳怎么做火车列车省时间,方便啊怎样买票
请问六月末天津到大连可以坐船么

Copyright © 2016 phpStudy |