源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-04-27 04:36 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于递归实现的php树形菜单代码
本文实例讲述了基于递归实现的php树形菜单代码。分享给大家供大家参考。具体实现方法如下: 开发电子商务网站的时候,做了这个显示树形菜单的功能,用的递归实现的PHP树形菜单函数。具体代码如下:
[u]复制代码[/u] 代码如下:
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程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部