<?php
/*** **************************************************************** 商品分类 2016年04月26日18:42:22* **************************************************************** @param* @return void* @author 王迪<2880707519@qq.com>* @license* @Copyright (c) 2009-2016 http://www.lvmaque.com All rights reserved.*/
class Model_Shop_Class{protected  $_table_name = 'shop_goods_class';protected  $_primary_key= 'gc_id';/*** **************************************************************** 获得排列好的分类信息 2016年04月26日18:43:22* **************************************************************** @param* @return void* @author 王迪<2880707519@qq.com>* @license* @Copyright (c) 2009-2016 http://www.lvmaque.com All rights reserved.*/public static function getList(){$parent_0   =  "select gc_id,gc_parent_id from sline_shop_goods_class where gc_parent_id=0";$list       =  DB::query(Kohana_Database::SELECT,$parent_0)->execute()->as_array();$parentArray=array();$parentArray[0]=$list;$parentArray['findIds']=$list;self::getChild($parentArray);return $parentArray;}//查找子集public static function getChild(&$parent){//id的数组$idArray = Kohana_Util::only_array($parent['findIds'],'gc_id');//id连接城字符串$idString = implode(',',$idArray);$child = "select gc_id,gc_parent_id from sline_shop_goods_class where gc_parent_id in ({$idString})";$childRes = DB::query(Kohana_Database::SELECT,$child)->execute()->as_array();if(count($childRes)<1){return;}$parent['findIds']=$childRes;//按parent_id把数组存储起来foreach($childRes as $v){$parent[$v['gc_parent_id']][]=$v;}self::getChild($parent);}
}

这么做查数据库的效率会比较高,是一层一层的往下查的

找子集的时候就从parent_id等于零开始查找,

然后循环0键值对应的数组,

再找里面的parent_id对应的键值是否存在,如果存在就把里面的继续遍历,如果不存在就结束递归!

O(∩_∩)O哈哈哈~!,我是不是很6,绝对原创,亲!转载只要998!

转载于:https://blog.51cto.com/westds/1768026

无线分类新写法,是不是很吊@!相关推荐

  1. android 复杂的列表视图新写法MultiType

    从前,比如我们写一个类似微博列表页面,这样的列表是十分复杂的:有纯文本的.带转发原文的.带图片的.带视频的.带文章的等等,甚至穿插一条可以横向滑动的好友推荐条目.不同的 item 类型众多,而且随着业 ...

  2. 中国科学家Cell重要评述文章: 宏基因组学成为病毒分类新方法

    比起其他的地球生命体,人类对病毒的了解可谓"冰山一角".宏基因组学作为新型研究工具,拓宽了人类对病毒多样性的认识.本期文献分享的是发表于<CELL>的题为"U ...

  3. Linux内核很吊之 module_init解析 (下)【转】

    转自:https://blog.csdn.net/richard_liujh/article/details/46758073 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...

  4. 个推解读 | 各厂商推送消息分类新规出台,APP开发者必看

    近期,多个厂商平台陆续发布了关于消息分类的管理新规.很多开发者找到个推前来咨询新规的内容以及可能带来的影响.为了帮助更多开发者快速了解各厂商的新规政策,今天,个推就围绕厂商消息分类的背景.规则.适用性 ...

  5. vue2.x中slot-scope插槽在vue3.x中的新写法

    vue2.x中slot-scope插槽在vue3.x中的新写法 1.vue2.x的写法 <el-table-column label="测试" align="cen ...

  6. Python练习题答案: 分类新会员【难度:1级】--景越Python编程实例训练营,1000道上机题等你来挑战

    分类新会员[难度:1级]: 答案1: def openOrSenior(data):return ["Senior" if age >= 55 and handicap &g ...

  7. 当ViewModelProviders方法被弃用,使用ViewModelProvider获取ViewModel的新写法_莫韵乐与bug的奇妙冒险

    当ViewModelProviders方法被弃用,使用ViewModelProvider获取ViewModel的新写法 在androidx.lifecycle:lifecycle-extensions ...

  8. Linux内核很吊之 module_init解析 (下)

    Linux内核很吊之 module_init解析 (下) 转载 2017年01月23日 13:58:21 标签: 95 编辑 删除 转自: http://blog.csdn.net/richard_l ...

  9. STC15F104W无线收发模块,源程序注释很详细,PDF格式说明书,可以学习20个遥控器,3个按键一个学习按键还有按键开和按键关

    STC15F104W无线收发模块,源程序注释很详细,PDF格式说明书,可以学习20个遥控器,3个按键一个学习按键还有按键开和按键关,遥控器也能控制开关,用充电宝或手机充电器供电都行,频率433和315 ...

最新文章

  1. python 如何用指数函数拟合数据?(2020年新型冠状病毒感染人数预测)
  2. 日常生活小技巧 -- Notepad++一次删除带指定关键字的行
  3. java中ThreadPool的介绍和使用
  4. Makefile学习资料及书籍推荐
  5. wifi管理系统_如何有效选择一款移动考勤管理系统
  6. 6种不同画法画平行线_今年超火的Prada Hobo,原来有6种不同
  7. AngularJS Filters
  8. 美赛整理之投影寻踪模型及其求解
  9. 表情识别(三)--基于几何与Gabor小波的多层感知
  10. js获取本机ip地址
  11. Laravel文档梳理9、Blade模板
  12. c语言大一期中考试知识点,大一期末考试复习计划
  13. Win10系统如何关闭防火墙?
  14. 华为交换机升级包及补丁验证完整性
  15. 某建筑设计研究院“综合布线管理软件”应用实践
  16. html打印为pdf表格显示不全,打印表格时内容显示不完整怎么办?四种方法解决WPS不完整问题...
  17. 加密解密,MySQL单行函数,数学函数字符串日期时间,流程控制,完整详细可收藏查询SQL
  18. stm32启用内部晶振(stm32设置外部晶振)
  19. 关于计算机二级考试C语言的心得
  20. 共享内存shmget的郁闷

热门文章

  1. Domino Web开发规则之三:以资源管理库为中心开发
  2. 阿里云EMR异步构建云HBase二级索引
  3. fetch 跨域请求
  4. 使用sed和awk取除最后两个字段之外的字段
  5. what is success?
  6. 脱贫利器 | PYTHON多线程行情抓取工具实现
  7. Spark Streaming揭秘 Day9 从Receiver的设计到Spark框架的扩展
  8. PHP微信开发之获取access_token
  9. 使用Redis分区将数据分割到多个Redis实例
  10. Xbox One 初始化-2 激活(百视通)和配置账户