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类
Jul 15 PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
php微信开发之关注事件
Jun 14 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
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
python对象及面向对象技术详解
2016/07/19 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
厨师岗位职责
2013/11/12 职场文书
接待员岗位责任制
2014/02/10 职场文书
体育课课后反思
2014/04/24 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
详细介绍python类及类的用法
2021/05/31 Python
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫
什么是Python装饰器?如何定义和使用?
2022/04/11 Python
全网非常详细的pytest配置文件
2022/07/15 Python