无限级菜单父节点查询所有子节点
Jun 06, 2016 pm 07:31 PM写了一个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 */ ?>

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment vérifier vos diplômes universitaires sur Xuexin.com

12306 Comment vérifier l'historique des enregistrements d'achat de billets Comment vérifier l'historique des enregistrements d'achat de billets

Il existe plusieurs versions de thinkphp

Lequel est le meilleur, Laravel ou thinkphp ?

Comment vérifier la date d'activation sur le téléphone mobile Apple
