濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > CMSPRESS 10行代碼搞定 PHP無(wú)限級(jí)分類2

CMSPRESS 10行代碼搞定 PHP無(wú)限級(jí)分類2

熱門標(biāo)簽:長(zhǎng)沙做地圖標(biāo)注公司 地圖標(biāo)注專員怎么樣 福建銀行智能外呼系統(tǒng)價(jià)格 上海做外呼線路的通信公司 寧波外呼營(yíng)銷系統(tǒng) 遼寧ai電銷機(jī)器人價(jià)格 四川保險(xiǎn)智能外呼系統(tǒng)供應(yīng)商 房產(chǎn)中介用的是什么外呼系統(tǒng) 電話機(jī)器人銷售主要負(fù)責(zé)什么

超級(jí)無(wú)限分類 使用簡(jiǎn)單 效率極高 核心代碼10行不到
另外 求這個(gè)分類的不足,和更高效簡(jiǎn)單的無(wú)限分類方法 ^_^

核心代碼如下

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

但需要對(duì) Pid進(jìn)行 ASC的排序 不然會(huì)顯示不完全

$value['Count'] = $count; 為當(dāng)前的等級(jí) 在模板里會(huì)通過(guò)等級(jí)進(jìn)行生成樹(shù)形結(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> 正常輸出即可 把需要生成樹(shù)結(jié)構(gòu)的字段 修改成如上

測(cè)試了 如果是3000條的話 用時(shí) 0.5秒 1000個(gè)的話 0.02秒的左右 超過(guò)3000效率就會(huì)大幅度降低 2000左右的效率還是比較高的 沒(méi)有進(jìn)行更詳細(xì)的測(cè)試

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

標(biāo)簽:宿遷 延安 工商登記 佛山 澳門 常德 深圳 宜春

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CMSPRESS 10行代碼搞定 PHP無(wú)限級(jí)分類2》,本文關(guān)鍵詞  CMSPRESS,10行,代碼,搞定,PHP,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CMSPRESS 10行代碼搞定 PHP無(wú)限級(jí)分類2》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于CMSPRESS 10行代碼搞定 PHP無(wú)限級(jí)分類2的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    宝应县| 甘泉县| 衡南县| 南和县| 沂水县| 崇义县| 临安市| 云浮市| 寻乌县| 新宁县| 寿阳县| 逊克县| 墨玉县| 龙游县| 花莲县| 临泽县| 珠海市| 陈巴尔虎旗| 虹口区| 南靖县| 衡东县| 蕲春县| 盐亭县| 昌吉市| 乡城县| 静宁县| 南川市| 若尔盖县| 荥经县| 仁布县| 康定县| 金阳县| 宁陕县| 兴业县| 迁安市| 永善县| 和龙市| 江达县| 唐海县| 景德镇市| 惠东县|