基於遞迴實現的php樹形菜單代碼,遞迴php樹形代碼_PHP教程

來源:互聯網
上載者:User

基於遞迴實現的php樹形菜單代碼,遞迴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程式設計有所協助。

http://www.bkjia.com/PHPjc/914057.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/914057.htmlTechArticle基於遞迴實現的php樹形菜單代碼,遞迴php樹形代碼 本文執行個體講述了基於遞迴實現的php樹形菜單代碼。分享給大家供大家參考。具體實現方法...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.