Thinkphp框架使用list_to_tree 實現無限級分類列出所有節點示例_php實例

來源:腳本之家  責任編輯:小易  

使用遞歸 可以在網上搜索下php的遞歸 直接拿過來改下變量就可以直接使用www.13333515.buzz防采集請勿采集本網。

本文實例講述了Thinkphp框架使用list_to_tree 實現無限級分類列出所有節點。分享給大家供大家參考,具體如下:

thinkphp框架onethink后臺支持三級菜單 onethink后臺支持三級菜單,CMS管理后臺1.0版本本身不支持三級菜單,稍加改動,即可支持無限級分類 /** * 獲取控制器菜單數組,二級菜單元素位于一級菜單的'_child'元素中 * @author 朱亞杰 */ final public

list_to_tree 使用起來十分方便,詳細可查看手冊。因為我在用的時候需要同時列出所有節點,所以寫了一個遞歸函數,拿出來供大家參考。

下拉框的值不是已經在頁面上了嗎? 那就用js去獲取.

public function index(){ Load('extend'); //加載擴展方法 $Category=D('Category'); $list=$Category->order('sort desc')->select();//實現同級節點排序 $list=list_to_tree($list,'id','fid'); //詳細參數見手冊 $list=$this->findChild($list); dump($list);}protected function findChild($arr){ static $tree=array(); foreach ($arr as $key=>$val){ $tree[]=$val; if (isset($val['_child'])){ $this->findChild($val['_child']); } } return $tree;}

所以,你想問什么啊,,,,這個視頻我也看過,還不錯,

/** * 把返回的數據集轉換成Tree * @access public * @param array $list 要轉換的數據集 * @param string $pid parent標記字段 * @param string $level level標記字段 * @return array */function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) { // 創建Tree $tree = array(); if(is_array($list)) { // 創建基于主鍵的數組引用 $refer = array(); foreach ($list as $key => $data) { $refer[$data[$pk]] =& $list[$key]; } foreach ($list as $key => $data) { // 判斷是否存在parent $parentId = $data[$pid]; if ($root == $parentId) { $tree[] =& $list[$key]; }else{ if (isset($refer[$parentId])) { $parent =& $refer[$parentId]; $parent[$child][] =& $list[$key]; } } } } return $tree;}/** * 對查詢結果集進行排序 * @access public * @param array $list 查詢結果 * @param string $field 排序的字段名 * @param array $sortby 排序類型 * asc正向排序 desc逆向排序 nat自然排序 * @return array */function list_sort_by($list,$field, $sortby='asc') { if(is_array($list)){ $refer = $resultSet = array(); foreach ($list as $i => $data) $refer[$i] = &$data[$field]; switch ($sortby) { case 'asc': // 正向排序 asort($refer); break; case 'desc':// 逆向排序 arsort($refer); break; case 'nat': // 自然排序 natcasesort($refer); break; } foreach ( $refer as $key=> $val) $resultSet[] = &$list[$key]; return $resultSet; } return false;}/** * 在數據列表中搜索 * @access public * @param array $list 數據列表 * @param mixed $condition 查詢條件 * 支持 array('name'=>$value) 或者 name=$value * @return array */function list_search($list,$condition) { if(is_string($condition)) parse_str($condition,$condition); // 返回的結果集合 $resultSet = array(); foreach ($list as $key=>$data){ $find = false; foreach ($condition as $field=>$value){ if(isset($data[$field])) { if(0 === strpos($value,'/')) { $find = preg_match($value,$data[$field]); }elseif($data[$field]==$value){ $find = true; } } } if($find) $resultSet[] = &$list[$key]; } return $resultSet;}

不知道你什么問題, TP你還是多看看 手冊吧, 挺詳細的

更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

可以參考各大開源軟件的實現模式,如discuz的uc,phpcms的phpsso等

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

public $cateListAll = array();public function editCate(){ $this->cateChildList(0,$nb);//從父級2113=0開始遞歸5261 $this->cateList=$this->cateListAll; $this->display();} //無限極分類4102protected function cateChildList($pid,$nb){ $cate=M('cate'); $parent=$cate->where('parent_id="'.$pid.'"')->order('sort asc,id desc')->select(); if($parent) { $nb = $nb." "; foreach($parent as $item) { $item['name']=$nb.'├ '.$item['name']; $this->cateListAll[]=$item; $this->cateChildList($item['id'],$nb); } }}其中前臺html直接循環1653cateList即可內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • thinkphp5實現無限級分類
  • 使用thinkphp的自動完成實現無限級分類實例詳解
  • thinkphp無限級分類代碼
  • thinkphp無限級分類原理實現留言與回復功能實例
  • thinkphp自動填充實現無限級分類的方法
  • thinkphp框架無限級欄目的排序功能實現方法示例
  • thinkphp實現遞歸循環欄目并按照樹形結構無限極輸出的方法
  • thinkphp實現無限分類(使用遞歸)
  • thinkphp實現遞歸無級分類——代碼少
  • ubuntu下配置nginx+php+mysql詳解
  • php創建sprite
  • php實現鏈式操作的核心思想
  • php導入導出excel實例
  • discuz論壇 用戶登錄 后臺程序代碼
  • yii2框架restful api 格式化響應,授權認證和速率限制三部分詳解
  • 淺談php數組array_change_key_case() 函數和array_chunk()函數
  • win7環境下apache連接mysql提示連接已重置的解決辦法
  • php url路由入門實例
  • dedecms首頁調用圖片集里的多張圖片
  • thinkphp怎么實現無限級分類
  • Thinkphp如何實現無限級分類
  • 怎么用thinkphp實現欄目的無限級分類
  • thinkphp用遞歸怎么實現無限分類
  • thinkphp框架怎么做一個三級菜單
  • AJAX實現無限級分類列表,如何得到下拉框里的值,...
  • php+mysql三級分類,李文凱thinkphp無限級分類
  • ThinkPHP框架實例化數據庫后只能調用一個方法
  • 使用thinkphp框架實現單點登錄,服務端也要用tp,...
  • thinkphp三級分類怎么弄???求高手指教
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全php基礎php技巧php實例php文摘php模板首頁php編程thinkphp入門教程thinkphp模板操作技巧總結thinkphp常用方法總結codeigniter入門教程ci(codeigniter)框架進階教程zend framework框架入門教程php模板技術總結thinkphp5實現無限級分類使用thinkphp的自動完成實現無限級分類實例詳解thinkphp無限級分類代碼thinkphp無限級分類原理實現留言與回復功能實例thinkphp自動填充實現無限級分類的方法thinkphp框架無限級欄目的排序功能實現方法示例thinkphp實現遞歸循環欄目并按照樹形結構無限極輸出的方法thinkphp實現無限分類(使用遞歸)thinkphp實現遞歸無級分類——代碼少ubuntu下配置nginx+php+mysql詳解php創建spritephp實現鏈式操作的核心思想php導入導出excel實例discuz論壇 用戶登錄 后臺程序代碼yii2框架restful api 格式化響應,授權認證和速率限制三部分詳解淺談php數組array_change_key_case() 函數和array_chunk()函數win7環境下apache連接mysql提示連接已重置的解決辦法php url路由入門實例dedecms首頁調用圖片集里的多張圖片php獲取數組長度的方法(有實例)微信公眾平臺實現獲取用戶openid教你如何使用php session使用php生成二維碼的兩種方法(帶php發送get、post請求的6種方法簡php中把stdclass object轉array的微信公眾平臺網頁授權獲取用戶基laravel框架數據庫curd操作、連貫php刪除數組中空值的方法介紹php從數組中刪除元素的四種方法實實現php加速的eaccelerator dll支持文件打global.php用 composer構建自己的 php 框架之使用 oyii框架結合charjs統計上一年與當前年數據php date函數常用時間處理方法thinkphp模板的包含與渲染實例分析laravel timestamps 設置為unix時間戳的方laravel 實現劃分admin和home 模塊分組php實現根據ip地址獲取其所在省市的方法destoon找回管理員密碼的方法
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果