您好,登錄后才能下訂單哦!
以前實現無限分類都沒好好研究過,今天突然來興趣就隨手寫了一個遞歸的無限極分類,希望對大家有借鑒意義!
<?php /*模擬數據庫查詢出來的分類數據*/ $data = array( array('id'=>1,'name'=>1,'fid'=>0), array('id'=>2,'name'=>2,'fid'=>0), array('id'=>3,'name'=>3,'fid'=>0), array('id'=>4,'name'=>4,'fid'=>1), array('id'=>5,'name'=>5,'fid'=>2), array('id'=>6,'name'=>6,'fid'=>3), array('id'=>7,'name'=>7,'fid'=>4), array('id'=>8,'name'=>8,'fid'=>9), array('id'=>9,'name'=>9,'fid'=>4) ); /** * 無限分類遞歸函數 * @param array $data 分類信息 * @param string $fid 父類id * @param integer $pad 頁面顯示的縮進大小 * @return string 拼接好的菜單(可以根據具體需求做修改) */ function menu(&$data, $fid, $pad=0) { if(count($data) < 1) { return; } //拼接字符串 $str = ''; foreach ($data as $key => $value) { if($value['fid'] == $fid) { $str .= str_repeat(' ', $pad); $str .= $value['name'].'<br />'; unset($data[$key]); //遞歸 $str .= menu($data,$value['id'],$pad+1); } } return $str; } echo menu($data,0); /*結果 1 4 7 9 8 2 5 3 6 */
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。