91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PHP中利用CMSPRESS實現一個無限級分類

發布時間:2020-12-16 15:44:30 來源:億速云 閱讀:128 作者:Leah 欄目:開發技術

怎么在PHP中利用CMSPRESS實現一個無限級分類?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

核心代碼如下

class Tool {
  static public $treeList = array(); //存放無限分類結果如果一頁面有多個無限分類可以使用 Tool::$treeList = array(); 清空
  /**
   * 無限級分類
   * @access public 
   * @param Array $data   //數據庫里獲取的結果集 
   * @param Int $pid       
   * @param Int $count    //第幾級分類
   * @return Array $treeList  
   */
  static public function tree(&$data,$pid = 0,$count = 1) {
    foreach ($data as $key => $value){
      if($value['Pid']==$pid){
        $value['Count'] = $count;
        self::$treeList []=$value;
        unset($data[$key]);
        self::tree($data,$value['Id'],$count+1);
      } 
    }
    return self::$treeList ;
  }  
}

$treeList[] 保存排序的結果 基本就是進行了一次排序 保存后就可以 unset($data[$key]); 掉 因為已經使用不到了
&$data 使用按地址傳參,結合unset($data[$key]); 減少循環次數,這樣效率提高了好幾倍,

但需要對 Pid進行 ASC的排序 不然會顯示不完全

$value['Count'] = $count; 為當前的等級 在模板里會通過等級進行生成樹形結構

排序前后的數據結構如下

表所需要字段 Id,Pid
排序前的數據結構
id   pid
1    0
2    0
3    1
4     3

排序后的數據結構

id  pid  count
1   0    1
3   1   2
4   3    3
2   0   1

//默認列表
  public function index() {  
    $menu = M('Menu');
    $list = $menu->order('Pid ASC,Morder DESC,Id ASC')->select();
    $this->assign('List',Tool::tree($list));  
         $this->display();
  }

控制器里調用

<td ><neq name="vo.Count" value="1">| -- </neq><{$vo.Name}></td>

模板使用里<volist> 正常輸出即可 把需要生成樹結構的字段 修改成如上

測試了 如果是3000條的話 用時 0.5秒 1000個的話 0.02秒的左右 超過3000效率就會大幅度降低 2000左右的效率還是比較高的 沒有進行更詳細的測試

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辉县市| 山东省| 黄大仙区| 攀枝花市| 北安市| 墨玉县| 凌海市| 甘肃省| 汪清县| 洛川县| 忻州市| 霍山县| 珠海市| 凭祥市| 江城| 彩票| 栾川县| 威海市| 鄂尔多斯市| 寻乌县| 诏安县| 嘉善县| 通辽市| 刚察县| 囊谦县| 丹寨县| 博兴县| 黎城县| 延长县| 铁力市| 花莲市| 英山县| 沿河| 肥西县| 嘉峪关市| 三亚市| 青田县| 汉阴县| 左云县| 双鸭山市| 淮阳县|