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("&nbsp;",$vo["level"]*3).'├╌ ' 
        /*str_repeat()函數把字符串重復指定的次數。*/ 
    ?>
    {$vo.name}
    </td>						
  </tr>
{/volist}
</tbody>

到此這篇關於ThinkPHP菜單無極分類實例講解的文章就介紹到這瞭,更多相關ThinkPHP菜單無極分類內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: