ThinkPHP菜單無極分類實例講解
效果圖如下
controller控制器代碼:
/** * 菜單列表 */ public function index(){ $menuList= Db::name('menu')->order('sort,id')->select(); //遞歸排序 $menuList= $this->sort($menuList); $this->assign('menuList',$menuList); return view(); } protected function sort($data,$pid=0,$level=0){ //此處數據必須是靜態數組,不然遞歸的時候每次都會聲明一個新的數組 static $arr = array(); foreach ($data as $key=>$value){ if($value['pid'] == $pid){ $value["level"]=$level; $arr[]=$value; //unset()用於銷毀指定的變量 unset($this->data[$key]); $this->sort($data,$value['id'],$level+1); } } return $arr; }
html模板代碼:
<tbody> {volist name="menuList" id="vo" key="index"} <tr> <td class="text-left"> <?php if($vo['pid']!=0) echo str_repeat(" ",$vo["level"]*3).'├╌ ' /*str_repeat()函數把字符串重復指定的次數。*/ ?> {$vo.name} </td> </tr> {/volist} </tbody>
到此這篇關於ThinkPHP菜單無極分類實例講解的文章就介紹到這瞭,更多相關ThinkPHP菜單無極分類內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- ThinkPHP的標簽制作實例講解
- ThinkPHP基於think-queue的隊列插件實現消息推送
- vue如何實現點擊選中取消切換
- Thinkphp5+Redis實現商品秒殺代碼實例講解
- Thinkphp6.0中間件的具體使用