小編給大家分享一下PHP如何實(shí)現(xiàn)無限極分類生成分類樹,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、澄城網(wǎng)站維護(hù)、網(wǎng)站推廣。現(xiàn)在的分類數(shù)據(jù)庫設(shè)計(jì)基本都是:每一個(gè)分類有一個(gè)id主鍵字段,一個(gè)pid指向父類的id,這樣便可實(shí)現(xiàn)無限級(jí)分類,取出的數(shù)據(jù)就是如下的格式:
$arr = array( array("id" => 1 , "pid" => 0 , 'cat' => '欄目一'), array("id" => 2 , "pid" => 0 , 'cat' => '欄目二'), array("id" => 3 , "pid" => 1 , 'cat' => '欄目三'), array("id" => 4 , "pid" => 2 , 'cat' => '欄目四'), array("id" => 5 , "pid" => 1 , 'cat' => '欄目五'), array("id" => 6 , "pid" => 5 , 'cat' => '欄目六'), array("id" => 7 , "pid" => 5 , 'cat' => '欄目七'), array("id" => 8 , "pid" => 6 , 'cat' => '欄目八'), array("id" => 9 , "pid" => 1 , 'cat' => '欄目九'), array("id" => 10 , "pid" => 0 , 'cat' => '欄目十'), array("id" => 11 , "pid" => 10 , 'cat' => '欄目十一'), array("id" => 12 , "pid" => 11 , 'cat' => '欄目十二'), array("id" => 13 , "pid" => 2 , 'cat' => '欄目十三'), array("id" => 14, "pid" => 13 , 'cat' => '欄目十四') );
不多說,直接上處理代碼:
//生成無限極分類樹 function make_tree($arr){ $refer = array(); $tree = array(); foreach($arr as $k => $v){ $refer[$v['id']] = & $arr[$k]; //創(chuàng)建主鍵的數(shù)組引用 } foreach($arr as $k => $v){ $pid = $v['pid']; //獲取當(dāng)前分類的父級(jí)id if($pid == 0){ $tree[] = & $arr[$k]; //頂級(jí)欄目 }else{ if(isset($refer[$pid])){ $refer[$pid]['subcat'][] = & $arr[$k]; //如果存在父級(jí)欄目,則添加進(jìn)父級(jí)欄目的子欄目數(shù)組中 } } } return $tree; }
測(cè)試運(yùn)行:
$cat = make_tree($arr); print_r($cat);
運(yùn)行結(jié)果:
Array ( [0] => Array ( [id] => 1 [pid] => 0 [cat] => 欄目一 [subcat] => Array ( [0] => Array ( [id] => 3 [pid] => 1 [cat] => 欄目三 ) [1] => Array ( [id] => 5 [pid] => 1 [cat] => 欄目五 [subcat] => Array ( [0] => Array ( [id] => 6 [pid] => 5 [cat] => 欄目六 [subcat] => Array ( [0] => Array ( [id] => 8 [pid] => 6 [cat] => 欄目八 ) ) ) [1] => Array ( [id] => 7 [pid] => 5 [cat] => 欄目七 ) ) ) [2] => Array ( [id] => 9 [pid] => 1 [cat] => 欄目九 ) ) ) [1] => Array ( [id] => 2 [pid] => 0 [cat] => 欄目二 [subcat] => Array ( [0] => Array ( [id] => 4 [pid] => 2 [cat] => 欄目四 ) [1] => Array ( [id] => 13 [pid] => 2 [cat] => 欄目十三 [subcat] => Array ( [0] => Array ( [id] => 14 [pid] => 13 [cat] => 欄目十四 ) ) ) ) ) [2] => Array ( [id] => 10 [pid] => 0 [cat] => 欄目十 [subcat] => Array ( [0] => Array ( [id] => 11 [pid] => 10 [cat] => 欄目十一 [subcat] => Array ( [0] => Array ( [id] => 12 [pid] => 11 [cat] => 欄目十二 ) ) ) ) ) )
如果大家需要這樣的組裝格式,或者需要該格式方便后續(xù)的處理,可以嘗試此方法。
看完了這篇文章,相信你對(duì)“PHP如何實(shí)現(xiàn)無限極分類生成分類樹”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
新聞名稱:PHP如何實(shí)現(xiàn)無限極分類生成分類樹-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://vcdvsql.cn/article2/cseooc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、定制開發(fā)、手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容