最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CMSPRESS 10行代碼搞定 PHP無限級分類2

 更新時間:2018年03月30日 22:58:17   投稿:mdxy-dxy  
超級無限分類 使用簡單 效率極高 核心代碼10行不到,另外 求這個分類的不足,和更高效簡單的無限分類方法

超級無限分類 使用簡單 效率極高 核心代碼10行不到
另外 求這個分類的不足,和更高效簡單的無限分類方法 ^_^

核心代碼如下

class Tool {
  static public $treeList = array(); //存放無限分類結(jié)果如果一頁面有多個無限分類可以使用 Tool::$treeList = array(); 清空
  /**
   * 無限級分類
   * @access public 
   * @param Array $data   //數(shù)據(jù)庫里獲取的結(jié)果集 
   * @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[] 保存排序的結(jié)果 基本就是進行了一次排序 保存后就可以 unset($data[$key]); 掉 因為已經(jīng)使用不到了
&$data 使用按地址傳參,結(jié)合unset($data[$key]); 減少循環(huán)次數(shù),這樣效率提高了好幾倍,

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

$value['Count'] = $count; 為當(dāng)前的等級 在模板里會通過等級進行生成樹形結(jié)構(gòu)

排序前后的數(shù)據(jù)結(jié)構(gòu)如下

表所需要字段 Id,Pid
排序前的數(shù)據(jù)結(jié)構(gòu)
id   pid
1    0
2    0
3    1
4     3

排序后的數(shù)據(jù)結(jié)構(gòu)

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

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

控制器里調(diào)用

<td style="text-indent:<{$vo['Count']*20}>px;"><neq name="vo.Count" value="1">| -- </neq><{$vo.Name}></td>

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

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

如果哪位大哥測試了 麻煩把測試結(jié)果回復(fù)下哈

相關(guān)文章

  • PHP獲取當(dāng)前系統(tǒng)時間的方法小結(jié)

    PHP獲取當(dāng)前系統(tǒng)時間的方法小結(jié)

    這篇文章主要介紹了PHP獲取當(dāng)前系統(tǒng)時間的方法小結(jié),需要的朋友可以參考下
    2018-10-10
  • 利用PHP擴展Xhprof分析項目性能實踐教程

    利用PHP擴展Xhprof分析項目性能實踐教程

    XHProf是Facebook開發(fā)的性能調(diào)試工具,能幫助直觀的統(tǒng)計顯示PHP程序執(zhí)行中各方法函數(shù)調(diào)用次數(shù)和消耗時間,以方便我們排查性能瓶頸并進行調(diào)優(yōu)。下面這篇文章主要給大家介紹了關(guān)于利用PHP擴展Xhprof分析項目性能實踐的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • php連接微軟MSSQL(sql server)完全攻略

    php連接微軟MSSQL(sql server)完全攻略

    在研究ezSQL的時候就看到了mssql_connect()等一些php提供的連接MSSQL的函數(shù),本以為php這個開源的風(fēng)靡世界的編程語言對連接微軟的數(shù)據(jù)應(yīng)該是不在話下的,但是到真正執(zhí)行的時候,才發(fā)現(xiàn)困難多多
    2016-11-11
  • PHP遞歸返回值時出現(xiàn)的問題解決辦法

    PHP遞歸返回值時出現(xiàn)的問題解決辦法

    我們在使用PHP遞歸時,會遇到各種各樣的問題,其中比較令人苦惱的是有關(guān)PHP遞歸返回值時出現(xiàn)的問題
    2013-02-02
  • 淺談PHP中output_buffering

    淺談PHP中output_buffering

    這篇文章主要介紹了淺談PHP中output_buffering的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • php+html5使用FormData對象提交表單及上傳圖片的方法

    php+html5使用FormData對象提交表單及上傳圖片的方法

    這篇文章主要介紹了php+html5使用FormData對象提交表單及上傳圖片的方法,實例分析了FormData對象的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • 輕松實現(xiàn)php文件上傳功能

    輕松實現(xiàn)php文件上傳功能

    這篇文章主要教大家輕松實現(xiàn)php文件上傳功能,利用PHP可以把文件上傳到服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • PHP常用技巧匯總

    PHP常用技巧匯總

    這篇文章主要針對PHP常用技巧進行了詳細(xì)匯總,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 基于PHP實現(xiàn)原生增刪改查的示例代碼

    基于PHP實現(xiàn)原生增刪改查的示例代碼

    這篇文章主要介紹了如何利用php寫個原生增刪改查功能,文中的示例代碼講解,對我們學(xué)習(xí)PHP有一定幫助,感興趣的小伙伴可以了解一下
    2022-04-04
  • PHP字符串和十六進制如何實現(xiàn)互相轉(zhuǎn)換

    PHP字符串和十六進制如何實現(xiàn)互相轉(zhuǎn)換

    這篇文章主要介紹了PHP字符串和十六進制如何實現(xiàn)互相轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07

最新評論

友谊县| 乐平市| 若羌县| 谷城县| 资兴市| 武鸣县| 二连浩特市| 建德市| 金川县| 临澧县| 哈巴河县| 高平市| 桐乡市| 山西省| 连南| 新邵县| 阳朔县| 农安县| 武夷山市| 汕头市| 远安县| 青冈县| 滨海县| 大洼县| 襄汾县| 五原县| 墨玉县| 汝南县| 贡嘎县| 萝北县| 霍山县| 自贡市| 牟定县| 民权县| 霍邱县| 禹州市| 武川县| 灵寿县| 邢台县| 锦屏县| 开化县|