基于递归实现的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 服务器 CMS SQL jQuery C# C++ java Android IOS oracle MongoDB PostgreSQL SQLite 交通频道 长途汽车站-公交车站 天桥区西工商河路13号翡翠郡北区29号(近汽车厂东路)
迁安五重安汽车客运站 河北省唐山市迁安市
汽车站路 山东省济宁市兖州市
娄底汽车南站 湖南省娄底市娄星区
富阳汽车站 迎宾路91号
民权人和客运站 河南省商丘市民权县
东姚汽车站 河南省安阳市林州市
越秀南客运站售票处 广东省广州市越秀区
吴江屯村汽车站 屯村东路
清远北站 清新大道29号
宝安客运中心汽车站停车场 广东省深圳市宝安区
湘运长途汽车站 湖南省株洲市荷塘区
峡山汽车站 广东省汕头市潮南区
淮阳县贾营客运站 河南省周口市淮阳县
五常常堡客运站 黑龙江省哈尔滨市五常市
醴陵市汽车西站出站口 湖南省株洲市醴陵市
南安诗山汽车站 二零六省道
巴东县汽车客运站 金堂路61号
陆朗汽车站 江苏省南京市江宁区
凤翔汉封客运站 陕西省宝鸡市凤翔县
藤县富吉汽车站 广西壮族自治区梧州市藤县
黄山太平汽车站 平湖东路
瑞安上金长途客运站 塘梅线与一零四国道交叉处
泸州河东客运站 纳溪安和医院旁边
烟台汽车总站佳选超市售票处 山东省烟台市芝罘区
亚丰客运站 湖南省邵阳市武冈市
乐只汽车站 四川省内江市隆昌县
太和关集客运站 安徽省阜阳市太和县
腰新客运站 黑龙江省大庆市杜尔伯特蒙古族自治县
平果县客运站车辆进口 广西壮族自治区百色市平果县
旬阳汽车站零担货运 陕西省安康市旬阳县
磐石客运北站 磐石大街
灵川潮田客运站 广西壮族自治区桂林市灵川县
浏河汽车站-公交车站 太仓市太平北路109号
峨眉山第二汽车运输公司客运站 四川省乐山市峨眉山市
迎春门旅游车站 四川省乐山市市中区
尚志公路客运总站站前分站 黑龙江省哈尔滨市尚志市
涟水汽车站 淮安市涟水县炎黄大道与金城北路交汇处
平果榜圩汽车站 二零八省道
屠甸镇汽车站 石泾东路
玉环县沙门兴安客运中心 浙江省台州市玉环县
株洲汽车南站 合泰路616号
竹竿客运站 河南省信阳市罗山县
花园桥客运站 安徽省滁州市全椒县
鄂托克前旗汽车站 陶伦北路170
五站客运站 黑龙江省绥化市肇东市
旺苍国华客运站 四川省广元市旺苍县
资溪县汽车站候车厅 江西省抚州市资溪县
移动客运站营业厅 湖北省宜昌市夷陵区
白沙洲汽车站 湖南省衡阳市雁峰区
期纳客运站 云南省丽江市永胜县
河滩长途汽车站 北京市门头沟区门头沟路7号
宁城天义汽车客运站 内蒙古自治区赤峰市宁城县
吐鲁番市原种场客运站 新疆维吾尔自治区吐鲁番地区吐鲁番市
五峰客运站 湖北省宜昌市五峰土家族自治县
营山望龙湖汽车客运站 四川省南充市营山县
易门绿汁客运站 云南省玉溪市易门县
临汾市汽车站出口 山西省临汾市尧都区
凤翔县董家河客运站 陕西省宝鸡市凤翔县
南康市车站 江西省赣州市南康市
达拉特旗展旦召客运站 六一八县道
兴城郭家客运站 辽宁省葫芦岛市兴城市
卢家客运站 吉林省长春市九台市
港区客运站 江苏省苏州市太仓市
吴家镇客运站 重庆市
南安罗东客运站 三三二县道凤山头附近
乐清中雁荡山车站 西漈路
鄂托克旗木肯淖镇客运站 一零九国道
绥中客运站 辽宁省葫芦岛市绥中县
四块石客运站 辽宁省大连市长海县
泗水星村客运站 山东省济宁市泗水县
汤河客运站 山东省临沂市河东区
寻寨客运站 河北省邢台市新河县
云阳汽车客运中心 重庆市云阳县
七台河市鸿发长途快速客运站 黑龙江省七台河市新兴区
柘林汽车站 广东省潮州市饶平县
巨野核桃园客运站 山东省菏泽市巨野县
锡北客运站 江苏省无锡市锡山区
新晃黄雷农村客运站 湖南省怀化市新晃侗族自治县
直溪客运站 江苏省常州市金坛市
绵阳通力梓潼客运站 文昌路南段
青溪镇客运站 四川省广元市青川县
兖州汽车站 兖州市酒仙桥北路63号(近兖州火车站)公交/驾车
滦南汽车客运站 河北省唐山市滦南县
天中客运站 河南省驻马店市汝南县
巨野谢集客运站 山东省菏泽市巨野县
熊背乡客运站 河南省平顶山市鲁山县
龙胜各族自治县汽车客运服务站 广西壮族自治区桂林市龙胜各族自治县
同心汽车站 宁夏回族自治区吴忠市同心县
京山社会客运站 湖北省荆门市京山县
新区车站 浙江省嘉兴市海盐县
月峰乡农村客运站 零五七县道
沈阳站汽车客运枢纽站 辽宁省沈阳市和平区
常州市武进礼嘉汽车客运站 礼坂路
莫力庙客运站 内蒙古自治区通辽市科尔沁区
易门县中型货车微型车发车站 朝阳路97号
穆棱汽运站 穆林干线
深圳西乡客运站 西乡街道宝安大道旁边
和田客运总站长途站西分站 新疆维吾尔自治区和田地区和田市
瑞安港客运站 沿江东路

Copyright © 2016 phpStudy |