今天需要给安卓IOS端写商城分类的接口,使用原始的方法也是可以的,但是之前使用过得方法忘记怎么写了,最后想起了这个属于无限分类方面的,也属于递归操作,所以到网上查了查,最后找到了相关的方法,特此记录一下,链接如下:

https://blog.csdn.net/landylxy/article/details/55259665

具体代码如下:

/***方法一*
*/
function sort($category,$parent_id=0,$level=0){static $arr=array();foreach($category as $k=>$v){if($v['parent_id']==$parent_id){$v['level']=$level;$arr[]=$v;unset($category[$k]);//已经排好等级的,从数组中移除,提高性能$this->sort($category,$v['id'],$level+1);}}return $arr;}/***方法二*
*/function sort2($category,$parent_id=0,$level=0){$res=array();foreach($category as $c){if($c['parent_id']==$parent_id){$c['level']=$level;$arr[]=$c;$res=array_merge($arr,$this->sort($category,$c['id'],$level+1));}}return $res;}/***方法三*
*//*** 得到分类级数,并将他们的上下级关系,体现在返回数组中* @param unknown $category* @param number $parent_id* @param number $level* @return multitype:array*/function category($category,$parent_id=0,$level=0){$arr=array();foreach($category as $k=>$v){if($v['parent_id']==$parent_id){$v['level']=$level;$v['child']=$this->category($category,$v['id'],$level+1);$arr[]=$v;}}return $arr;}

我使用的是方法三,但是将此方法整合到function.php中调用的时候报错404,我打开原链接说是Using $this when not in object context,截图如下:

标题

所以就找了个上级的控制器继承此方法,继承代码入下:

/*** 得到分类级数,并将他们的上下级关系,体现在返回数组中* @param unknown $category* @param number $parent_id* @param number $level* @return multitype:array*/public function category($category,$parent_id=0,$level=0){$arr=array();foreach($category as $k=>$v){if($v['parent_id']==$parent_id){$v['level']=$level;$v['child']=$this->category($category,$v['id'],$level+1);$arr[]=$v;}}return $arr;}

需要注意的是继承控制器方法需要加上public,否则不能使用,最后查询商城商品分类成功!!!

ThinkPHP商城分类无限分类遍历数据相关推荐

  1. c++遍历文件夹下的文件_算法面试|开发者必备|使用递归函数进行无限分类及文件夹遍历...

    适合的读者:学生:初级程序员 前言 程序设计本质上是为了解决生产中的问题,而有时候我们面临的问题无法用有限的数学公式来解决,比如树形目录.无限分类等等,类似这种问题,用递归函数来解决就方便多了. 那什 ...

  2. ThinkPHP无限分类模块设计

    public function catelist(){$cate=D('Cate');//var_dump($cate->gettree());exit;$cateres=$cate->g ...

  3. 基于系统数据过滤权限设计之----lft, rgt的无限分类算法

    系统权限设计中的一般常见会有: 用户表 角色表 用户与角色关联表 资源表 角色与资源关联表. 当然这里介绍是笼统的,有些系统中会有用户组表或者角色组表,甚至为了把菜单资源和按钮资源分开,也创建单独的表 ...

  4. 商品分类js html,json数据来制作商城的产品分类菜单

    人们早就习惯了在互联网购物买东西,甚至有一部分朋友还是上瘾了.本篇PHP教程就来帮助您的电子商务项目实现最重要的产品类别的导航菜单系统.我已经使用PHP.MYSQL及JQuery实现了亚马逊样式的产品 ...

  5. php父子遍历,php无限分类父子追溯方法

    php 无限分类之父级分类和子分类的追溯方法,代码片段如下: //返回所有的叶子节点 public function scanNodeOfTree($result,$fid){ $checkexist ...

  6. 关于一个无限分类的多选,单选相关的控件

    最近在一个项目中需要用到无限分类的平铺多选,单选这些功能,查了一些资料,结果大都是一些用IFrame这样的东西做的,虽然用起来直观,但本人更喜欢集成控件形式的,于是抽了一些时间做了一个.思路是利用控件 ...

  7. PHP 实现无限分类

    最近打算做一个blog,通常每篇文章都有属于自己的分类.下面就记录下我在写blog时实现无限分类的过程.php框架用的是laravel,根据注释也能轻松改成你习惯的框架. 数据表设计 CREATE T ...

  8. 深度实现session【包括session入库、session机制和session和cookie的使用方法,完善会话机制(在分布式机器中也能使用)】、无限分类的实现...

    1.session的注意点: @session_start();//这个配置需要注意,session开启中会有影响,所以使用错误抑制符进行限制[并且使用php.ini对session进行自动开启] s ...

  9. 论坛中,无限分类的原理

    1.创建数据表 CREATE TABLE category( `cat_id` SMALLINT unsigned not null auto_increment comment '类别id', `c ...

  10. php根据分类生成网址,PHP实现无限极分类生成分类树的方法

    本文实例讲述了PHP实现无限极分类生成分类树的方法.分享给大家供大家参考,具体如下: 现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出 ...

最新文章

  1. 宁愿“大小周”、每天只写 200 行代码、月薪 8k-17k 人群再涨!揭晓中国开发者真实现状...
  2. PowerDesigner16中的对象无效,不允许有扩展属性 问题的解决
  3. 反射_获取字节码Class对象的三种方式
  4. [译] Airbnb 在 React Native 上下的赌注(一):概述
  5. Ibatis 生成工具ibator的使用 适用于ibaits2
  6. mysql5.7.76安装,win7下mysql5.7.17安装配置方法图文教程
  7. pyspark编写UDF函数
  8. NULL 与 nullptr区别与联系
  9. linux 查看安装软件
  10. 分式的二阶导数怎么求_分式复合函数求导公式大全
  11. java面试题题目与解析(自己网上找的):java208
  12. 新申请了一个博客 以后就要记录我的点滴生活了
  13. LED背光学习_标准和白光LED的基础知识与驱动
  14. Flutter模拟器运行显示不正常问题(夜游神安卓模拟器)
  15. 内网安全-arp欺骗,dns劫持钓鱼
  16. 如何分辨IP地址的类型
  17. python解越南逆天小学数学题
  18. 关于前端开发中“模块”和“组件”概念的思考
  19. Android 增量更新实战
  20. MySQL的ODBC驱动下载及安装

热门文章

  1. inno setup 打包工具介绍
  2. windows主题Mac OS 风格 BigSur主题美化
  3. 服装免费收银系统哪个好-云上铺会员管理软件
  4. T410s主板上的黑色塑料是散热问题的祸首
  5. java程序员面试题大全含答案(2018--2019)
  6. 浪潮服务器raid虚拟驱动,浪潮服务器RAID 卡驱动
  7. 快播案:程序正义、盗版和色情
  8. qq表情左右滑动php,基于jQuery实现的QQ表情插件_jquery
  9. 高等数学复盘 | 第七册上册第一章——第六章思维导图梳理(复习专用)
  10. 算法64-荷兰国旗问题