写了一个Thinkphp的节点工具,通过传入一个父id查询旗下的子节点。 ThinkPHP ?phpclass Tree{static public $treeList=array();//存放无限极分类结果static public $childNode=array();//存放父节点和父节点下面的子节点//无限级分类排序public function crea
写了一个Thinkphp的节点工具,通过传入一个父id查询旗下的子节点。 ThinkPHP
<?php class Tree{ static public $treeList=array();//存放无限极分类结果 static public $childNode=array();//存放父节点和父节点下面的子节点 //无限级分类排序 public function create($data,$pid = 0,$level = 1){ foreach($data as $key => $value){ if($value['pid']==$pid){ $value['level'] = $level; self::$treeList[] = $value; unset($data[$key]); self::create($data,$value['id'],$level+1); } } return self::$treeList; } /******************************************************************************/ /** * 根据父节点,查询父节点下面的子节点 * @param int $tid tree表ID */ public function findChild($tid){ self::$childNode[]=(int)$tid; $tree=M('Tree'); $map['id']=array('eq',$tid); $allTree=$tree->field('id,pid')->select(); //查询tree表 self::findArrayNode($tid, $allTree); return self::$childNode;//返回所有节点 } /** * * @param int $id 节点ID * @param array $list tree表所有的id,pid */ public function findArrayNode($id,$list){ foreach ($list as $key => $val){ if ($id==$val['pid']){ self::$childNode[]=(int)$val['id']; self::findArrayNode($val['id'], $list); //递归,传入新节点ID } } } /******************************************************************************/ //根据findChild()的返回结果,组装sql语句,用于查询news表 public function createSql($arr=array()){ $sql=""; foreach ($arr as $key => $val){ $sql.="tid=$val or "; } $sql=trim($sql); //清除空格 $sql=trim($sql,'or'); //清除最后的or $sql=trim($sql); //清除空格 return $sql; } /******************************************************************************/ /** * 根据tid,获取where的sql * @param int $tid */ public function getSql($tid){ return self::createSql(self::findChild($tid)); } } /* 用法 import('ORG.Util.Tree'); $list=Tree::create($data); 排序前的数据结构 id pid 1 0 2 0 3 1 4 3 排序后的数据结构 id pid level 1 0 1 3 1 2 4 3 3 2 0 1 */ ?>
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
刺客信條陰影:貝殼謎語解決方案
3 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前ByDDD
在哪裡可以找到原子中的起重機控制鑰匙卡
3 週前ByDDD
節省R.E.P.O.解釋(並保存文件)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影 - 如何找到鐵匠,解鎖武器和裝甲定制
4 週前ByDDD

熱工具

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。