赞
踩
无限分类,是指从一个最高分类开始,每个子分类都可以分出自己的若干个子分类,可以一直分下去,称为无限级分类;
下面是对省市县的无限极分类的列子。数据库如图:
- /**
- * @Description: 无限极分类一
- * @Author: Yang
- * @param $data 数据库数据
- * @param int $parent_id 父级ID
- * @return array
- */
- function getTree1($data, $parent_id = 0)
- {
- $tree = array();
- foreach ($data as $k => $v) {
- if ($v["parent_id"] == $parent_id) {
- unset($data[$k]);
- if (!empty($data)) {
- $children = getTree1($data, $v["id"]);
- if (!empty($children)) {
- $v["_child"] = $children;
- }
- }
- $tree[] = $v;
- }
- }
- return $tree;
- }
-
-
- /**
- * @Description: 无限极分类二
- * @Author: Yang
- * @param $data 数据库数据
- * @param int $parent_id 父级ID
- * @param int $level 等级
- * @return array
- */
- function getTree2($data, $parent_id = 0, $level = 0)
- {
- static $tree = array();
- foreach ($data as $k => $v) {
- if ($v["parent_id"] == $parent_id) {
- $v["level"] = $level;
- $tree[] = $v;
- getTree2($data, $v["id"], $level + 1);
- }
- }
- return $tree;
- }
-
- /**
- * @Description: 无限分类三:面包屑导航
- * @Author: Yang
- * @param $data 数据库数据
- * @param $id 分类ID
- * @return array
- */
- function getCrumbsBar($data, $id) {
- static $tree = array();
- foreach ($data as $k => $v) {
- if ($v["id"] == $id) {
- getCrumbsBar($data, $v["parent_id"]);
- $tree[] = $v;
- }
- }
- return $tree;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。