PHP:mime_content_type()的用法_fileinfo函數
735
2023-12-15
本文實例講述了PHP實現無限極分類生成分類樹的方法。分享給大家供大家參考,具體如下:
現在的分類數據庫設計基本都是:每一個分類有一個id主鍵字段,一個pid指向父類的id,這樣便可實現無限級分類,取出的數據就是如下的格式:
$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]; //創建主鍵的數組引用 } foreach($arr as $k => $v){ $pid = $v['pid']; //獲取當前分類的父級id if($pid == 0){ $tree[] = & $arr[$k]; //頂級欄目 }else{ if(isset($refer[$pid])){ $refer[$pid]['subcat'][] = & $arr[$k]; //如果存在父級欄目,則添加進父級欄目的子欄目數組中 } } } return $tree; }
測試運行:
$cat = make_tree($arr); print_r($cat);
運行結果:
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] => 欄目十二 ) ) ) ) ) )
如果大家需要這樣的組裝格式,或者需要該格式方便后續的處理,可以嘗試此方法
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP常用遍歷算法與技巧總結》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
#免責聲明#
本站[綠夏技術導航]提供的一切軟件、教程和內容信息僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡收集整理,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦或手機中徹底刪除上述內容。如果您喜歡該程序或內容,請支持正版,購買注冊,得到更好的正版服務。我們非常重視版權問題,如有侵權請郵件[admin@lxwl520.com]與我們聯系進行刪除處理。敬請諒解!