无限极分类,用的是递归,在外部调用fen()方法即可
                index是刚开始寻找的顶级分类,suo是为了在前端展示的时候缩进
public function fen($index=,$suo=){         一个数组用来返回的
       $t=[];              这是查询数据库的所有内容
foreach($this->select() as $key=>$value)
{               
if($value["parent_id"]==$p){
      如果说父级ID是刚开始默认的顶级分类的话,
             就给这个顶级分类的缩进设置为0
$value["suo"]=$suo;                   然后就是添加这个数组进刚开始定义的数组,下面两种添加方法都可以,我觉得push看的更加明白,
   // $t[]=$value;
array_push($t,$value);                  然后就是递归了,传进去的第一个就是要查找的父级ID,就是当前的这个vlaue的cat_id,找出他下面的子分类,然后都是子分类缩进当然要加一个了.
                 为什么用合并呢,如果用push的话,如果这个分类没有子分类那么会添加进来一个空数组,
                  用合并的话,就会自动屏蔽空数组 $t=array_merge($t,$this->fen($value["cat_id"],$v+)); //array_push($t,$this->fen($value["cat_id"],$v+1));
}
}           最后循环结束,再把查到的递归进来的每个方法中的定义的数组给抛回去
return $t; }

 
我用的是thinkPHP3.2 
我是把递归的方法写在模型里面的,
$this->assign("list",$this->gm->fen());
$this->display("type/catlist");
在Html里面,没有li的左外边距就是缩进的*40就OK,效果就出来了
<foreach name="list" item="item"> <li style="margin-left:{$item[suo]*40}px">
<span class="wl_suo">{$item.v}</span>
{$item.cat_name} <span>上机ID{$item.parent_id}</span></li> </foreach>

但是后台的递归还是不好的方法,好的方法还是把这些数组用json的格式传给前台的js处理,
这样的效率才会高

PHP 商城无限极分类的更多相关文章

  1. php无限极分类以及递归(thinkphp)

    php无限极分类: 无限极分类重点在于表的设计: 1在model中: class CatModel extends Model{ protected $cat = array(); public fu ...

  2. js实现无限极分类

    转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 因为要实现部门通讯录,后台传来的数据是直接从数据库里拿的部门表,所以没有层级分类,只有parentId表示从属关系,所以分类的事情就交给我来 ...

  3. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制

    在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...

  4. PHP无限极分类

      当你学习php无限极分类的时候,大家都觉得一个字“难”我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究. 到网上一搜php无限极分类,很多,但好多都是一个,并且,写的很乱, ...

  5. PHP无限极分类,多种方法|很简单,这里说的很详细,其它地方说的很不好懂

    当你学习php无限极分类的时候,大家都觉得一个字"难"我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究.   到网上一搜php无限极分类,很多,但好多都是一 ...

  6. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现

    今天做一个管理后台菜单,想着要用无限极分类,记得园子里还是什么地方见过这种写法,可今天找了半天也没找到,没办法静下心来自己写了: 首先创建节点类(我给它取名:AdminUserTree): /// & ...

  7. 谈一次php无限极分类的案例

    作者:白狼 出处:http://www.manks.top/php_tree_deep.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 ...

  8. PHP无限极分类生成树方法,无限分级

    你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...

  9. php之无限极分类

    首先建立分类信息表: CREATE TABLE IF NOT EXISTS `category` ( `categoryId` smallint(5) unsigned NOT NULL AUTO_I ...

随机推荐

  1. (二)java环境搭建

    Java运行环境的搭建: 什么是JRE,什么是JDK? JRE:(java运行环境)包括jvm(java虚拟机)和java运行的核心类库,如果只是运行java程序,只需安装JRE JDK:(java开 ...

  2. laravel 中将DB::select 得到的内容转为数组

    $sql = "select count(*) as num from api_log where uid='{$this->uid}'";                $ ...

  3. Java连接Mysql的基本用法

    Java连接数据库(以MySQL为例)2007-04-05 02:23           这篇文章主要以MySQL为例讲下Java如何连接到数据库的. 当然,首先要安装有JDK(一般是JDK1.5. ...

  4. hexo配置主题发表文章

    将本地hexo博客部署到github上了,如果想换我们自己喜欢的主题(默认为landscape),同时也要发表发表文章呢,下面给介绍下: 1,进入hexo官网,预览自己想要的主题,https://gi ...

  5. 分类(类别/Category)与 类扩展(Extension)

    一.分类(类别/Category) 1.适用范围      当你已经封装好了一个类(也可能是系统类.第三方库),不想在改动这个类了,可是随着程序功能的增加需要在类中增加一个方法,这时我们不必修改主类, ...

  6. js 预解析

    前言 JavaScript是解释型语言是毋庸置疑的,但它是不是仅在运行时自上往下一句一句地解析的呢? 事实上或某种现象证明并不是这样的,通过<JavaScript权威指南>及网上相关资料了 ...

  7. gatsbyjs 使用

    1. 安装 npm install --global gatsby-cli 2. 使用 // 创建项目 gatsby new dalong cd dalong // 启动 gatsby develop ...

  8. PCANet

    从上图可以看到,PCANet的训练分为三个步骤(stage),前两个stage很相似,都是去平均,然后PCA取主成分并卷积,最后一步是二值化(为了产生非线性输出)和直方图量化. 设滤波器个数为f, 1 ...

  9. C语言词法分析:C#源码

    今天继续研究代码解析的算法 这个是算法流程图 有图解可能更直观一点: 以下是c#源码:   1using System;   2using System.IO;   3using System.Tex ...

  10. HTTP/HTTPS原理详解

    简介 HTTP(Hypertext Transfer Protocal,超文本传输协议)是WWW(World Wide Web,万维网)数据传输的基础,规定如何传输超文本.HTTP协议存在多个版本:H ...