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 相关文章推荐
模仿OSO的论坛(二)
Oct 09 PHP
一个PHP日历程序
Dec 06 PHP
php 正则 过滤html 的超链接
Jun 02 PHP
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
PHP数据类型之整数类型、浮点数的介绍
Apr 28 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
php提高网站效率的技巧
Sep 29 PHP
php 问卷调查结果统计
Oct 08 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 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调用Oracle存储过程
2006/10/09 PHP
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
跟我学Laravel之视图 & Response
2014/10/15 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
javascript常用方法总结
2015/05/14 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
详解webpack 多入口配置
2017/06/16 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
python自动化测试实例解析
2014/09/28 Python
django用户登录和注销的实现方法
2018/07/16 Python
django将数组传递给前台模板的方法
2019/08/06 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
社区安全检查制度
2014/02/03 职场文书
擅自离岗检讨书
2014/02/11 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
2014年社区工作总结
2014/11/18 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers