无限极分类,用的是递归,在外部调用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 容器中的实现

    迭代器接口是迭代器模式实现的精髓: public interface Iterator<E> { boolean hasNext(); E next(); ... } 假设某容器名为 Xx ...

  2. 【转载】获取MAC地址方法大全

    From:http://blog.csdn.net/han2814675/article/details/6223617 Windows平台下用C++代码取得机器的MAC地址并不是一件简单直接的事情. ...

  3. nginx 转发 由于php语法错误 导致的 50x

    server {        listen 8008;        root /root/php-test;        index index.php index.html index.htm ...

  4. PHP读取文件函数fread,fgets,fgetc,file_get_contents和file函数的使用总结

    fread().fgets().fgetc().file_get_contents() 与 file() 函数用于从文件中读取内容. 1.fread() fread()函数用于读取文件(可安全用于二进 ...

  5. hibernate的级联(hibernate注解的CascadeType属性)

    [自己项目遇到的问题]: 新增  删除都可以实现 ,就是修改的时候无法同步更新设计三个类:  问题类scask  正文内容类text类    查看数+回复数+讨论数的runinfo类 [正文类和查看数 ...

  6. python操作excel xlrd和xlwt的使用

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  7. eclipse share project到svn时显示不被信任的证书,暂时接受也不行

    svn: 方法 OPTIONS 失败于 “https://eping.net/svn/testproject”: SSL handshake failed: SSL 错误:在证书中检测到违规的密钥用法 ...

  8. unity drawcall测试

    unity引擎影响drawcall的元素(使用Quad和Cube对比测试) 1.相机的background(没有渲染元素区域的颜色),4Verts.2Tris.1SetPass calls:      ...

  9. Java之父职场路

    Java之父——詹姆斯·高斯林出生于加拿大,是一位计算机编程天才.在卡内基·梅隆大学攻读计算机博士学位时,他编写了多处理器版本的Unix操作系统,是JAVA编程语言的创始人.1991年,在Sun公司工 ...

  10. oracle驱动包maven下载失败解决

    oracle是付费的,因此jar包也不是随便让人下的,这就给maven的下载和编译带来了麻烦,因为我们没法从maven仓库直接拿来用.解决办法就是先从别的地方获取jar包,再放到本地仓库里去,这样运行 ...