文档章节

无限循环输出无限分类【方案一】

zhiqiangw
 zhiqiangw
发布于 2016/10/12 15:34
字数 203
阅读 22
收藏 0
//    处理无极栏目排序
    protected function findChild($arr){
        static $tree = array();
        foreach ($arr as $key=>$val){
            $tree[] = $val;
            if (isset($val['_child'])){
                $this -> findChild($val['_child']);
            }
        }
        return $tree;
    }
    /**
     * 无限分级
     * @access  public
     * @param   array     $list      数据库里取得的结果集 地址引用
     * @param   integer   $pk        默认id的值
     * @param   integer   $pid       父级id的值
     * @param   array     $child     子类数组名称
     * @param   integer   $root      默认id的值是从0开始
     */
    function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) {
        // 创建Tree
        $tree = array();
        if(is_array($list)) {
            // 创建基于主键的数组引用
            $refer = array();
            foreach ($list as $key => $data) {
                $refer[$data[$pk]] =& $list[$key];
            }
            foreach ($list as $key => $data) {
                // 判断是否存在parent
                $parentId = $data[$pid];
                if ($root == $parentId) {
                    $tree[] =& $list[$key];
                }else{
                    if (isset($refer[$parentId])) {
                        $parent =& $refer[$parentId];
                        $parent[$child][] =& $list[$key];
                    }
                }
            }
        }
        return $tree;
    }
<volist name="qtable" id="v"> 
     <if condition="$v.DeepPath == 0 ">{$v.Name}
     <else /><for start="1" end="$v.DeepPath"> </for>
       ├ {$v.Name}</if>
</volist>

© 著作权归作者所有

zhiqiangw
粉丝 12
博文 193
码字总数 142771
作品 0
郑州
程序员
私信 提问
ThinkPHP5无限循环输出无限分类【方案三】

首先创建数据库: model 首先通过category_query方法获取到所有分类, 然后通过category_tree方法将得到的数据转化为无限分类数组 最后再通过category_html方法将上面得到的无限分类数组输出...

zhiqiangw
2016/11/30
437
0
多分类设计有什么好想法没?

文章可以有多个分类。 分类层次可以无限。 以前是做单无限分类,使用迭代循环读出。 感觉思想好烂。

eechen的粉丝
2014/11/24
97
1
php中常用的几种无限分类查询技术

数据库的设计无限分类之一 全路径无限分类 全路径无限分类的优点在于 不需要递归关键SQL语句是: $sql = 'select id,name,path,concat(path,"-",id) as fulpath from goods order by fulpath......

小麒麟的胡言乱语
2016/03/14
65
0
13岁女学生被捕:因发布 JavaScript 无限循环代码

这名13岁女孩被指控传播未经授权的恶意程序。 日本刈谷市警方近日质询并指控了一名13岁的女学生,起因是她将一段恶意代码的链接放到了在线公告栏上,广泛传播代码。这段有问题的恶意代码是弹...

局长
03/10
24.4K
37
for循环中的参数能不省略

for循环语法: for(赋初值;判断条件;赋值加减){ //自己的逻辑 } 1.省略第一个参数 2.省略第二个参数 3.省略第三个参数 结论: 1.第一个参数必须要定义,不然编译失败 2.第二个参数可以不写,...

书中迷梦
2016/07/29
211
0

没有更多内容

加载失败,请刷新页面

加载更多

MongoDB系列-在复制集(replication)以及分片(Shard)中创建索引

关注我,可以获取最新知识、经典面试题以及微服务技术分享   在使用MongoDB时,在创建索引会涉及到在复制集(replication)以及分片(Shard)中创建,为了最大限度地减少构建索引的影响,在副本...

ccww_
21分钟前
16
0
SAP HANA数据库multi container模式JDBC链接connection refused

报错如下信息 com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: Cannot connect to jdbc:sap://xxx.xxx.xxx.xxx:30015 [Cannot connect to host xxx.xxx.xxx.xxx:30015 [C......

flash胜龙
46分钟前
32
0
c++ 虚基类

c++ 虚基类 p556

天王盖地虎626
52分钟前
83
0
k8s删除Terminating状态的命名空间

背景: 我们都知道在k8s中namespace有两种常见的状态,即Active和Terminating状态,其中后者一般会比较少见,只有当对应的命名空间下还存在运行的资源,但是该命名空间被删除时才会出现所谓的...

Andy-xu
今天
78
0
seata源码阅读笔记

seata源码阅读笔记 本文没有seata的使用方法,怎么使用seata可以参考官方示例,详细的很。 本文基于v0.8.0版本,本文没贴代码。 seata中的三个重要部分: TC:事务协调器,维护全局事务和分支...

东都大狼狗
今天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部