PHP如何通过传引用的思想实现无限分类(代码简单)


Posted in PHP onOctober 13, 2015

无限级分类,主要是通过储存上级分类的id以及分类路径来实现

在我的Simpla中,用到了无限分类,使用了PHP的传引用思想实现无限分类的方法,可以完美展示类似这样的分类模式。

id   pid   name
1    0     四川
2    0     重庆
3    1     成都
4    1     绵阳
5    3     高新区

代码如下所示:

/**
  * 数组变成无限级分类--传引用思想
  * @param array $items
  * @return array
  */
 public static function get_tree($orig) {
  //解决下标不是1开始的问题
  $items = array();
  foreach ($orig as $key => $value) {
   $items[$value[‘id‘]] = $value;
  }
  //开始组装
  $tree = array();
  foreach ($items as $key => $item) {
   if ($item[‘pid‘] == 0) { //为0,则为1级分类
    $tree[] = &$items[$key];
   } else {
    if (isset($items[$item[‘pid‘]])) { //存在值则为二级分类
     $items[$item[‘pid‘]][‘child‘][] = &$items[$key]; //传引用直接赋值与改变
    } else { //至少三级分类
     //由于是传引用思想,这里将不会有值
     $tree[] = &$items[$key];
    }
   }
  }
  return $tree;
 }

以上内容很简单吧,如有错误或者更好的方法,希望可以相互交流。谢谢。!

PHP 相关文章推荐
php数字转汉字代码(算法)
Oct 08 PHP
支持中文的php加密解密类代码
Nov 27 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
PHP中使用GD库创建圆形饼图的例子
Nov 19 PHP
php清除和销毁session的方法分析
Mar 19 PHP
php微信公众平台开发(四)回复功能开发
Dec 06 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
微信小程序发送订阅消息的方法(php 为例)
Oct 30 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 #PHP
apache和PHP如何整合在一起
Oct 12 #PHP
php实现Mysql简易操作类
Oct 11 #PHP
php实现微信公众平台账号自定义菜单类
Oct 11 #PHP
php实现微信公众号无限群发
Oct 11 #PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 #PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 #PHP
You might like
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
学习php开源项目的源码指南
2014/12/21 PHP
php 数组元素快速去重
2017/05/05 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
用javascript做拖动布局的思路
2008/05/31 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
Python实现新浪博客备份的方法
2016/04/27 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Python正则表达式知识汇总
2017/09/22 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
python实现图片横向和纵向拼接
2020/03/05 Python
python 模块导入问题汇总
2021/02/01 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
农村文化活动总结
2014/08/28 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
JS高级程序设计之class继承重点详解
2022/07/07 Javascript
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS
Python中tqdm的使用和例子
2022/09/23 Python