通过引用实现php无限极分类
/**
* 递归加引用实现无限极分类
* @param $items
* @return array
*/
public function getTree2($items)
{
$array = [];
foreach ($items as $item)
{
if(isset($items[$item['pid']]))//拿到pid
{//放到里面
$items[$item['pid']]['son'][] = &$items[$item['id']];
}else {
$array[] = &$items[$item['id']];
}
}
return $array;
}
$array = array(
array('id' => 1, 'pid' => 0, 'name' => '河北省'),
array('id' => 2, 'pid' => 0, 'name' => '北京市'),
array('id' => 3, 'pid' => 1, 'name' => '邯郸市'),
array('id' => 4, 'pid' => 2, 'name' => '朝阳区'),
array('id' => 5, 'pid' => 2, 'name' => '通州区'),
array('id' => 6, 'pid' => 4, 'name' => '望京'),
array('id' => 7, 'pid' => 4, 'name' => '酒仙桥'),
array('id' => 8, 'pid' => 3, 'name' => '永年区'),
array('id' => 9, 'pid' => 1, 'name' => '武安市'),
);
Array
(
[1] => Array
(
[id] => 1
[pid] => 0
[name] => 河北省
[children] => Array
(
[0] => Array
(
[id] => 3
[pid] => 1
[name] => 邯郸市
[children] => Array
(
[0] => Array
(
[id] => 8
[pid] => 3
[name] => 永年区
)
)
)
[1] => Array
(
[id] => 9
[pid] => 1
[name] => 武安市
)
)
)
[2] => Array
(
[id] => 2
[pid] => 0
[name] => 北京市
[children] => Array
(
[0] => Array
(
[id] => 4
[pid] => 2
[name] => 朝阳区
[children] => Array
(
[0] => Array
(
[id] => 6
[pid] => 4
[name] => 望京
)
[1] => Array
(
[id] => 7
[pid] => 4
[name] => 酒仙桥
)
)
)
[1] => Array
(
[id] => 5
[pid] => 2
[name] => 通州区
)
)
)
)
通过引用实现php无限极分类的更多相关文章
- 分享一个牛逼的PHP无限极分类生成树方法,巧用引用(转)
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...
- PHP实现无限极分类的两种方式,递归和引用
面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 $array = array( array('id' => 1, 'pid' =& ...
- PHP使用引用实现无限极分类
PHP实现无限极分类 引用 <?php /** * 无限极分类实现 * @param $list array 需要处理的数组 * @param $pk string 主id * @param $ ...
- PHP无限极分类生成树方法,无限分级
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...
- PHP实现菜单无限极分类
菜单数据 这里我们的菜单数据是临时数据, 没有从数据库中查询处理,数据基本和数据库中的的相似. 数据如下: $items = array( 1 => array('id' => 1, 'p ...
- php 实现无限极分类
原始数据 $array = array( array('id' => 1, 'pid' => 0, 'n' => '河北省'), array('id' => 2, 'pid' ...
- PHP实现无限极分类的两种方式
无限极分类说简单点就是一个类可以分成一个分子类,然后一个子类又可以分另一个子类这样无限分下去,就是好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一个文件夹,PHP要实现无限极分类有两 ...
- php无限极分类以及递归(thinkphp)
php无限极分类: 无限极分类重点在于表的设计: 1在model中: class CatModel extends Model{ protected $cat = array(); public fu ...
- js实现无限极分类
转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 因为要实现部门通讯录,后台传来的数据是直接从数据库里拿的部门表,所以没有层级分类,只有parentId表示从属关系,所以分类的事情就交给我来 ...
- C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制
在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...
随机推荐
- [记录点滴]Spring Boot Admin源码分析笔记
[记录点滴]Spring Boot Admin源码分析笔记 0x00 摘要 本文是过去使用Spring Boot Admin时候分析源码的笔记.虽然比较简单,但是也可以看出Spring Boot Ad ...
- Flink名词介绍
一.常用名词 1.Slot:处理槽,一般为服务器核数*4,平分服务器内存 2.Window:时间窗口 滚动窗口(Tumbling Window)将事件拆分成固定长度,窗口之间不重叠,窗口长度固定 例: ...
- Linux驱动---字符设备
目录 一.基础简介 1.1.Linux设备驱动分类 1.2.字符设备驱动概念 二.驱动基本组成 2.1.驱动模块的加载和卸载 2.2.添加LICENNSE以及其他信息 三.字符设备驱动开发步骤 3.1 ...
- SYSTEM表空间使用率高
数据库监控告警,SYSTEM表空间使用率很高.检查发现LOB字段使用了很大的空间,定位到LOB字段属于SYS_EXPORT_FULL_%表,参考(Doc ID 1626201.1)步骤处理后,表空间使 ...
- Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
前言 今天大姚给大家分享一个 .NET 强大.免费.开源的交互式图表库:Plotly.NET. 项目介绍 Plotly.NET 一个为 .NET 打造的强大.免费.开源的交互式图表库,支持 C# 和 ...
- Qt Json序列化与反序列化
Qt Json序列化与反序列化 Qt的一个用于序列化与反序列化的库 xpack,也可用于c++. 使用方法 下载库文件 xpack 标签 - Gitee.com 按照它的默认样子放好,建议单独放一个文 ...
- 用于敏捷开发的最佳免费 UML 工具 2022
Table of Contents hide 1 最好的在线免费 UML图工具 2 免费的 UML Visual Paradigm 在线平台 3 其他福利 4 用于正式和大规模可视化建模的 Vis ...
- 【BUUCTF】Easy Java
[BUUCTF]Easy Java 题目来源 收录于:BUUCTF RoarCTF 2019 题目描述 经典登录框 不过SQL注入.目录扫描都没有发现 题解 点击页面的 help 跳转到/Downlo ...
- php站点导入大mysql文件(linux系统)
问题描述:站点数据多,mysql导出后大于1G,使用phpmyadmin,导入一半报错,白白浪费等待时间,使用navicat 导入,执行时间过长提示错误 解决思路:1.拆分mysql文件,分批次导入, ...
- 变量命名不规范&我被deepseek骗了
首先是一个实体类 @Data public class Dto {private String mNumber; } 前端传来{"mNumber:"123"}为null的 ...