PHP两种实现无级递归分类的方法

/**
*   无级递归分类 TP框架
*   @param   int     $assortPid   要查询分类的父级id
*   @param   mixed   $tag         上下级分类之间的分隔符
*   @return  string  $tree        返回的分类树型结构结果
*
*/
function recursiveAssort($assortPid, $tag = ‘‘)
{
    $assort = M(‘goods_class‘)->where("class_pid = $assortPid")->field(‘class_id, class_name‘)->select();
    foreach ($assort as $value) {
        $tree .= ‘<option value="‘ . $value[‘class_id‘] . ‘">‘ . $tag . $value[‘class_name‘] . ‘</option>‘;
        $tree .= recursiveAssort($value[‘class_id‘], $tag . ‘&emsp;‘);
    }
    return $tree;
}
   /**
    *   利用php的引用传递 CI框架
    *
    */
    public function get_access()
    {
        $access = array();
        $field = ‘id, pid, method, name, description‘;
        $q_access = $this->db->select($field)->get(‘access‘);
        $q_result = $q_access->result_array();

        if (!empty($q_result)) {
            $items = array();
            foreach ($q_result as $value) {
                $items[$value[‘id‘]] = $value;
            }
            foreach ($items as $key => $item) {
                if ($item[‘pid‘] == 0) {
                    $access[] = &$items[$key];
                } else {
                    $items[$item[‘pid‘]][‘sub_access‘][] = &$items[$key];
                }
            }
        }
        return $access;
    }
时间: 2024-08-24 12:06:15

PHP两种实现无级递归分类的方法的相关文章

Javascript中两种最通用的定义类的方法

在Javascript中,一切都是对象,包括函数.在Javascript中并没有真正的类,不能像C#,PHP等语言中用 class xxx来定义.但Javascript中提供了一种折中的方案:把对象定义描述为对象的配方(先看一下例子会比较容易理解).定义类的方法有很多种,这里有两中较为通用的方法,大家参考一下.这两种方法均可以解决 构造函数会重复生成函数,为每个对象都创建独立版本的函数的问题.解决了重复初始化函数和函数共享的问题??提示音:http://www.huiyi8.com/tishiy

两种动态加载JavaScript文件的方法

两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看下 动态加载script到页面大约有俩方法 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码.第二种是,动静创建一个script标签,配置其src属性,经过把script标签插入到页面head来加载js,相当于正在head中写了一个<sc

【JPA】两种不同的实现jpa的配置方法

两种不同的实现jpa的配置方法 第一种: com.mchange.v2.c3p0.ComboPooledDataSource datasource.connection.driver_class=com.mysql.jdbc.Driver <!-- Where to find repositories --> <jpa:repositories base-package="org.springframework.data.jpa.example.repository.simpl

qemu-system和qemu-user两种模式动态模拟运行嵌入式固件方法总结

qemu-system和qemu-user两种模式动态模拟运行嵌入式固件方法总结 前言 搭建嵌入式固件的动态模拟环境的过程中遇到了许多的坑,最终终于搭建了起来,很有必要记录下遇到的问题,避免今后再踩坑. 工具 1.buildroot 下载地址 以buildroot 2019.02.4版本为例,编译mips大端架构环境. tar zxvf buildroot-2019.02.4.tar.gz apt-get install libncurses5-dev make menuconfig Targe

斐波那契数的两种实现方式———1.递归实现,2迭代实现

对于斐波那契数,若是采用递归的算法,每个递归调用都将触发另外两个递归调用,而这两个中调用任意一个还会触发另外两个的调用.递归调用的时间复杂度O(2^N),空间复杂度为O(N),所以在计算略大的数会花费一定的时间和空间.递归程序如下: #include<iostream> using namespace std; unsigned long long Fib(size_t num) {     if (num < 2)     {         return num;     }    

form表单提交的两种方式 button和submit的使用方法

1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的头部插入一个js方法: function checkUser(){   var result = document.getElementById("userid").value;   var password = document.getElementById("userpass

两种PHP生成二维码的方法

PHP生成二维码,个人认为最常用的有两种,1.使用google的api生成,2.使用PHP QR Code生成,两种方法生成的二维码都是很清淅的,效果不错.下面来分别说明这两种方法如何实现. 一.PHP使用google api在线生成二维码: 关于这个API的介绍就不说了吧,你可以去Google的官方网站查询,相信大家关注的是具体代码,如下: <?php $urlToEncode="http://www.baidu.com";//要生成二维码的网址 generateQRfromG

两种解决头文件被重复包含方法的联系与区别

在制作C/C++项目的过程中,应该会遇到关于头文件被重复包含的问题,几乎每一个C/C++程序员都应该知道如何来解决这一问题.通常来说,我们通常可以用两种方式来解决这一问题. 第一种 ---- 利用以下形式: #ifndef  __XX_H__                                                                              #ifndef   XX_H #define __XX_H__                    

两种常见挂载Jenkins slave节点的方法

1.挂载slave节点的方法 在Jenkins的Master上,进入Mange node页面,可以管理node节点,例如新加.删除等操作. 其中, Name是节点名字: Description是节点描述: // of executors是该节点可以同时运行job的数量: Remote root directory主要是添加了workspace的目录: Label是该节点的标签名,在运行job的时候,可以使用该标签指定job运行的node: Usage是你如何使用该节点,通常选择Utilize t