树形无限极分类下拉框选项
protected $_nodeSelect; //生成树形无限极分类下拉框选项 protected function _tree($array, $parentId=0, $tmp="", $pid=0, $path=""){ $tmp .= " "; $path .= $pid ? $pid . "-" : ""; for($i=0; $i<count($array); $i++){ if($array[$i]["pid"] == $pid){ $this->_nodeSelect .= "<option value="".$array[$i]["id"]."" data-path="". $path . $array[$i]["id"] ."""; if($parentId == $array[$i]["id"]){ $this->_nodeSelect .= " selected="selected""; } $this->_nodeSelect .= ">".$tmp."|--".$array[$i]["name"]."</option>"; $this->_tree($array, $parentId, $tmp, $array[$i]["id"], $path); } } }
//此方法待完善 function tree($id=0,$xt=array(),$r=0){ $list = M(""); $classify = $list->where(array("parent_id"=>$id,))->select(); foreach((array)$classify as $k=>$v){ for($i=0;$i<$r;$i++){ $v["name"]="<span style="color:red;"> ├</span>".$v["name"]; } $xt[]=$v; $xt=tree($v["id"],$xt,$r+1); } return $xt; }
//递归生成树形多维数组 protected function tree($rows=array(), $parent_id=0) { foreach($rows as $row){ if($row["parent_id"] == $parent_id){ $tmp = $this->tree($rows, $row["id"]); if($tmp) $row["sub"] = $tmp; $tree[] = $row; } } return $tree; }
class Tool { public $treeList = array(); //存放无限分类结果如果一页面有多个无限分类可以使用 Tool::$treeList = array(); 清空 /** * 无限级分类 * @access public * @param Array $data //数据库里获取的结果集 * @param Int $pid * @param Int $count //第几级分类 * @return Array $treeList */ public function tree(&$data, $pid = 0, $count = 0) { foreach ($data as $key => $item) { if($item["parent_id"] == $pid){ $item["count"] = $count; $this->treeList[] = $item; // unset($data[$key]); $this->tree($data, $item["id"], $count + 1); } } return $this->treeList; } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: thinkphp导航高亮显示当前页面
- 下一篇: 树状无限极分类getTree tree