递归无限级分类的原理:

每一个分类都记录它的父级id,当为顶级分类时,父级id为0。这样无论哪个分类,都可以通过父级id一层一层去查明它的所有父级,以便清楚知道它所属何种分类,层级深度为几。

对数据进行重组,在重组的过程中,根据其父子关系,将相应的类别摆放到正确的位置。/*无限极分类列表*/

public function getTree($data='',$cate_id=0)

{

if(empty($data)){

$data = $this->order('listorder')->field('id,parent_id,cate_name,listorder')->select()->toArray();

}

return $this->_reSort($data,$cate_id);

}

//无限极分类树状结构,修改level值

/* @param $data 要遍历的分类数组

* @param $parent_id 节点pid,默认为0,表示从顶级节点开始

* @param $ret重组排序的所有后代节点

* @param $cate_level 节点层级

*/

private function _reSort($data, $parent_id=0, $cate_level=0, $isClear=TRUE)

{

//用于保存重组排序后的结果

static $ret = array();

//刚进入函数要清除上次调用此函数后留下的静态变量的值,进入深一层循环时则不要清除

if($isClear)

$ret = array();

foreach ($data as $k => $v)

{

if($v['parent_id'] == $parent_id)

{

$v['cate_level'] = $cate_level;

//找到以$parent_id为父节点的子节点,将其保存

$ret[] = $v;

unset($data[$k]);

//然后以该节点为父节点,继续找后台节点

$this->_reSort($data, $v['id'], $cate_level+1, FALSE);

}

}

return $ret;

}

调用class Category extends Base

{

public function index()

{

$category_model = new Categorys();

$categoryTree = $category_model->getTree();

return view('',[

'categoryTree' =>$categoryTree,

'left_menu' => 1,

]);

}

}

php无限分类原理,php 递归无限级分类原理和实现代码相关推荐

  1. php递归 返回数组,php 递归 无限级分类并返回数组的例子

    /** * 递归 无限级分类 返回数组 * link:www.jquerycn.cn * date:2013/2/21 */ $conn = mysql_connect('localhost','ro ...

  2. php数组无限文类,php把无限级分类生成数组的类

    你是否遇到需要把无限级分类循环出来,是不是很头痛. 比如,要循环出一个SELECT,或一个TABLE,要写一大堆判断. 我的做法是生成数组,可以重复调用,直接循环数组就行了.为了方便,把它写成了类:c ...

  3. php 递归实现无限极分类和排序_PHP无限级分类实现层级值间用字符串拼接

    题目: 如下数组,实现这么一个结果value=10-101-1011,label=万达-蜘蛛侠-已购票,其实就是层级值间用字符串拼接. $example=array(array('value'=> ...

  4. PHP 递归 无限级分类

    // 调用的数组 $array = [['id' => 1, 'pid' => 0, 'name' => '分类ID1'],['id' => 2, 'pid' => 0, ...

  5. php查找顶级分类,php 无限级分类 获取顶级分类ID,php顶级_PHP教程

    php 无限级分类 获取顶级分类ID,php顶级 有这样一个表,id是分类的ID,name是分类名称,pid是上级分类的ID. 现在有个分类ID,程序要找到它上级的上级的上级--分类的ID,简单说就是 ...

  6. php无限级分类是什么意思,PHP 无限级分类(递归)

    网上有很多,这是我自己做测试用的 $arr = array( array('id'=>1,'name'=>'电脑','pid'=>0), array('id'=>2,'name ...

  7. php无极分类非递归_php实现无限级分类(递归方法)

    相信很多学php的很多小伙伴都会尝试做一个网上商城作为提升自己技术的一种途径.各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限级分类列表的制作了. 到网上一搜php无限极分类,很多 ...

  8. php实现无限级分类(递归方法)

    什么是无限级分类? 无限级分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限级分类, 将其简单理解成分类就好了.其实我们仔细想一下,生活中的分类简直太多了, 衣服可以分为男装和女装,也可 ...

  9. java无限级分类详,无限级分类的简单实现

    引子 作为菜鸟的我面试过程中总是会被虐的体无完肤,即使知道是怎么一回事,但由于没有彻底掌握住,还是在关键时刻无法及时运用.所以多总结应该是我现在时常要做的事. 遇到的这个机试题就是关于无限级分类的知识 ...

最新文章

  1. 700 页的机器学习笔记火了!完整版开放下载
  2. HighNewTech:重磅!来自深度学习的三位大牛Yoshua、Hinton、LeCun荣获2018年图灵奖
  3. TI 无桥PFC方案【转子tidu312.pdf】-----图片专帖
  4. nginx file not found 错误处理小记
  5. python base64编码_JS和Python实现AES算法
  6. 阿里高级技术专家张建飞:深度剖析领域模型vs数据模型的用法
  7. sr锁存器 数电_C06. SR锁存器的认识
  8. 【redis】Redis简介
  9. sublime cscope使用方法
  10. 大数据做基础 构建流动人口健康屏障
  11. 九大ICT企业年中业绩大比拼
  12. oracle nav函数,WordPress函数wp_nav_menu()怎样用_CMS体系建站教程
  13. 光纤跳线结构及分类介绍
  14. 千千静听V5.6 Beta3 美化增强版
  15. 下载blob地址或m3u8格式视频方法以及常见问题解决
  16. 转:sklearn 用户手册之1.12. 多类别与多标签算法
  17. 思考力,决定你的产品力
  18. 计算机软件系统思政点,高校思政课网络评估系统的设计
  19. 用python计算工资工资_python练习-工资计算器
  20. Openstack magnum 简介

热门文章

  1. 了解***的初级阶段---网络信息探测技巧
  2. 遗传算法求解极大值问题
  3. oracle 物化视图 --转
  4. 小议ASP.NET模板引擎技术的使用
  5. Django 基本使用及目录结构
  6. 非科班的java程序员该如何补充计算机基础知识,需要看哪些书?
  7. 如何优雅的使用RabbitMQ?
  8. 总结下Mysql分表分库的策略及应用
  9. 初窥wireshark fiddler等抓包工具及部分实现分析
  10. python条件表达式连起来写一段话_python学习笔记十三条件表达式应用