php 无限级菜单父节点查询所有子节点
无限级菜单父节点查询所有子节点 [代码片段(94行)]
<?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 treeID */ 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 treeid,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; } /******************************************************************************/ /** * tidwheresql * @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 */ ?> //该片段来自于http://outofmemory.cn
精彩图集
精彩文章