PHP_递归实现无限级分类
<?php /**
* 递归方法实现无限级别分类
* @param array $list 要生成树形列表的数组[该数组中必须要有主键id 和 父级pid]
* @param int $pid=0 父级id
* @param int $level=0 缩进次数[用于指定分类名称要缩进的数量]
*/ function getTree($list,$pid=0,$level=0 ) {
// static 表示声明一个静态变量, 静态变量在函数中会一直保存它的值
static $tree = array();
foreach($list as $row) {
if($row['pid']==$pid) {
// 这个level是原来数组没有的,用于表示缩进的次数
$row['level'] = $level;
$tree[] = $row;
// 递归操作,重新把当前id传入函数中,获取当前id对应的子分类
getTree($list, $row['id'], $level + 1);
}
}
return $tree;
}
PHP_递归实现无限级分类的更多相关文章
- PHP不使用递归的无限级分类
不用递归实现无限级分类,简单测试了下性能比递归稍好一点点点,但写得太复杂了,还是递归简单方便点 代码: <?php $list = array( array('id'=>1, 'pid'= ...
- thinkphp框架中使用递归实现无限级分类
无限级分类在我们开发中显得举足轻重,会经常被人问到,而一般会用递归的方法来实现,但是递归又会难倒一批人.今天博主分享的这个稍微有点基础的phper都能学会,希望大家能喜欢. 一.先建立对应的数据库和表 ...
- (实用篇)PHP递归实现无限级分类
在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 在一些复杂的系统中,要求对信 ...
- PHP迭代与递归实现无限级分类
无限级分类是开发中常见的情况,因此本文对常见的无限极分类算法进行总结归纳. 1.循环迭代实现 $arr = [ 1=>['id'=>1,'name'=>'父1','father'=& ...
- PHP递归实现无限级分类
在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 在一些复杂的系统中,要求对信 ...
- php递归实现无限级分类树
作者: PHP中文网|标签:PHP 递归 无限级树|2017-5-18 18:09 无限级树状图可以说是无限级栏目的一个显著特征,我们接下来就来看看两种不同的写法. 一.数据库设计 1 2 3 ...
- PHP 递归读取无限级分类
/** * [获取第一级分类] * 20170829 * * @return array */ public function getCateList(){ $this->catelog = [ ...
- PHP递归重新排序无限级分类数组
public static function Menus($id,$spac=0){ /* $data = array( 1 => array('id' => 1,'name' => ...
- PHP无限级分类的实现(不使用递归)
无限级分类在开发中经常使用,例如:部门结构.文章分类.无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式: 查找分类A下面所有分类包含的文章. 1.实现原理 在 ...
- PHP+MySQL无限级分类(非递归)
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的 本文还是通过数据库的设计,用一句sql语句实现 数据库字段大概如下: 字段 说明 ...
随机推荐
- 如何优化 Vue.js 应用程序
单页面应用(SPAs)当处理实时.异步数据时,可以提供丰富的.可交互的用户体验.但它们也可能很重,很臃肿,而且性能很差.在这篇文章中,我们将介绍一些前端优化技巧,以保持我们的Vue应用程序相对精简,并 ...
- C++练习12 字符串成员函数的使用
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main() 5 { 6 stri ...
- 美团点评CAT部署了各种环境不下10次,遇到的坑整理
CAT是什么 我的理解是一个收集服务调用等运行情况的监控系统. 相信你能搜到这篇博客我就不多介绍了,这里有链接 传送门 本博客仅仅只帮助大家解决部署方面的问题 来自一个用户的吐槽 1.部署真他娘的困难 ...
- 【模板】AC自动机(二次加强版)
模板 \(Problem:\) 求 \(n\) 个模式串在文本串中出现的次数 \(templete:\) \(Luogu5357\) \(Code\) #include<cstdio> # ...
- Cobalt Strike 之:提权
郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. Co ...
- Vulhub 漏洞学习之:Apereo CAS
Vulhub 漏洞学习之:Apereo CAS 目录 Vulhub 漏洞学习之:Apereo CAS 1 Apereo CAS 4.1 反序列化命令执行漏洞 1.1 漏洞利用过程 1 Apereo C ...
- redis(10)事务和锁机制秒杀
Redis事务定义 Redis 事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断. Redis 事务的主要作用就是串联多个 ...
- go语言环境配置(windous)
1.下载go语言安装包:https://golang.google.cn/dl/ 2.配置环境变量:GOBIN:项目bin目录 GOPATH:项目目录(src下) GOROOT(go的环境变量) G ...
- JavaScript 中的一些奇怪问题
JavaScript 中的一些奇怪问题 JavaScript 在开发过程中可能会出现很多奇怪的问题,以下是一些示例: 1.变量提升问题: 变量提升是 JavaScript 中一个常见的问题,特别是当没 ...
- unity编辑器相机投影,正交切换
正常情况投影相机 切换成正交相机时,此时编辑器向前移动会如图所示被截断