php三种无限分类
无限分类,是指从一个最高分类开始,每个子分类都可以分出自己的若干个子分类,可以一直分下去,称为无限级分类;
下面是对省市县的无限极分类的列子。数据库如图:

代码示例如下:
/**
* @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 = getCategory($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;
getTree($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;
}
php三种无限分类的更多相关文章
- javascript中定义事件的三种方式 分类: C1_HTML/JS/JQUERY 2014-08-07 10:27 634人阅读 评论(0) 收藏
在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- 无限极分类(adjacency list)的三种方式(迭代、递归、引用)
一般的分类树状结构有两种方式: 一种是adjacency list,也就是是id,parent id这中形式. 另一种是nested set,即左右值的形式. 左右值形式查询起来比较高效,无需递归等, ...
- html(常用标签,标签分类),页面模板, CSS(css的三种引入方式),三种引入方式优先级
HTML 标记语言为非编程语言负责完成页面的结构 组成: 标签:被<>包裹的由字母开头,可以结合合法字符( -|数字 ),能被浏览器解析的特殊符号,标签有头有尾 指令:被<>包 ...
- SEM关键词的三种分类方式
关键词分类是为了使sem账户搭建结构清晰便于管理关键词.基于对需求人群的深入分析,每个账户都有其独特的分类方式,比如招商加盟行业更多的是地域分类,品牌类企业通常用词性分类即可,而冷门行业用人群分类比较 ...
- HTML元素分类【三种类型】
在CSS中,html中的标签元素大体被分为三种不同的类型: 块状元素.内联元素(又叫行内元素)和内联块状元素. 块状元素:display:block内联元素:display:inline 内联块状 ...
- php实现递归的三种方式: 遍历文件夹实例
递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去.实现递归函数可以采取什么方式呢?本文列出了三种基本方式.理解其原来需要一定的基础知识 ...
- php 递归函数的三种实现方式
递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去.实现递归函数可以采取什么方式呢?本文列出了三种基本方式.理解其原来需要一定的基础知识 ...
- PHP实现递归的三种方法
递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去.实现递归函数可以采取什么方式呢?本文列出了三种基本方式.理解其原来需要一定的基础知识 ...
随机推荐
- Iptables防火墙规则使用
iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...
- 1032. Sharing (25)
To store English words, one method is to use linked lists and store a word letter by letter. To save ...
- php-fpm sock文件权限设置
在编译php-fpm时,若没有指定fpm用户,在配置文件中也没有指定用户,则sock文件会由root(启动php-fpm的用户)创建,其权限是srw-rw----. 而nginx一般由nginx用户启 ...
- docker基础篇
下载,安装 安装Windows社区版 官网地址:https://store.docker.com/editions/community/docker-ce-desktop-windows?tab=de ...
- Spark记录-Spark性能优化解决方案
Spark性能优化的10大问题及其解决方案 问题1:reduce task数目不合适解决方式:需根据实际情况调节默认配置,调整方式是修改参数spark.default.parallelism.通常,r ...
- Java编程思想 学习笔记3
三.操作符 1.优先级 当一个表达式中存在多个操作符时,操作符的优先级就决定了各部分的计算顺序.程序员常常忘记其他优先级规则,所以应该用括号明确规定计算顺序. 当编译器观察到一个String后面紧跟着 ...
- 04-接口隔离原则(ISP)
1. 背景 类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类B和类D来说不是最小接口,则类B和类D不得不去实现它们不需要的方法. 2. 定义 一个类对另一个类的依赖应该建立在最小的接口 ...
- 20155330 2016-2017-2 《Java程序设计》第六周学习总结
20155330 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 学习目标 理解流与IO 理解InputStream/OutPutStream的继承架构 理解 ...
- sonar扫描java、js、jsp技术
最近在弄sonar扫描的事情,之前一直只能扫描java代码,这样统计出来的数据上报领导很多开发人员不服(说我不用写jsp了不用写js了?), 那么好,于是乎继续整sonar,在官网中看到sonar其实 ...
- python技巧 列表推导
val = [expression for value in collection if condition] 等价于 val = []for value in collection: if c ...