php无限分类二

1.读取数据数据

/**
     * 所有分类数据
     * */
    public function categoryData(){
        $order = ‘id,sort asc‘;
        $res = $this->db->cache($this->cache)->order($order)->select();
        return $data;
    }

结构如下

Array
(
    [1] => Array
        (
            [id] => 1
            [pid] => 0
            [name] => 新闻40
            [desc] =>
            [is_delete] =>
            [add_time] => 1494938181
        )

    [2] => Array
        (
            [id] => 2
            [pid] => 0
            [name] => 图片
            [desc] => 234234
            [is_delete] =>
            [add_time] => 1494938210
        )

    [3] => Array
        (
            [id] => 3
            [pid] => 5
            [name] => 234234
            [desc] => 234
            [is_delete] =>
            [add_time] => 1494938931
        )

    [4] => Array
        (
            [id] => 4
            [pid] => 1
            [name] => 234234
            [desc] =>
            [is_delete] =>
            [add_time] =>
        )

    [5] => Array
        (
            [id] => 5
            [pid] => 4
            [name] => 第4级分类
            [desc] =>
            [is_delete] =>
            [add_time] =>
        )

    [6] => Array
        (
            [id] => 6
            [pid] => 1
            [name] => 12312
            [desc] => 3123123
            [is_delete] =>
            [add_time] => 1494943856
        )

)

2.创建子分类查询

 /**
     * 子分类列表
     * */
    public function pidData($pid=null){
        $result =‘‘;
        $arr = $this->categoryData();
        foreach($arr as $k=>$v){
            if($v[‘pid‘] == $pid){
                $result[$v[‘id‘]] = $v;
            }
        }
        return $result;
    }

3.无限循环

 /**
     * 分类树
     * */
    public function tree($pid=0){
        $res = $this->pidData($pid);
        if(empty($res)) return false;
        foreach($res as $k=>$v){
            $result[$v[‘id‘]] = $v;

            $rf = $this->tree($v[‘id‘]);
            if($rf){
                foreach($rf as $k=>$vv){
                    $result[$vv[‘id‘]][‘id‘] = $vv[‘id‘];
                    $result[$vv[‘id‘]][‘name‘] = "   |- ".$vv[‘name‘];
                    $result[$vv[‘id‘]][‘pid‘] = $vv[‘pid‘];
                }
            }
        }
        return $result;
    }

无限循环结构

Array
(
    [1] => Array
        (
            [id] => 1
            [pid] => 0
            [name] => 新闻40
            [desc] =>
            [is_delete] =>
            [add_time] => 1494938181
        )

    [4] => Array
        (
            [id] => 4
            [name] =>    |- 234234
            [pid] => 1
        )

    [5] => Array
        (
            [id] => 5
            [name] =>    |-    |- 第4级分类
            [pid] => 4
        )

    [3] => Array
        (
            [id] => 3
            [name] =>    |-    |-    |- 234234
            [pid] => 5
        )

    [6] => Array
        (
            [id] => 6
            [name] =>    |- 12312
            [pid] => 1
        )

    [2] => Array
        (
            [id] => 2
            [pid] => 0
            [name] => 图片
            [desc] => 234234
            [is_delete] =>
            [add_time] => 1494938210
        )

)
时间: 2024-07-31 03:15:35

php无限分类二的相关文章

无限分类1

连接上一个 无限分类 一.新建一个商品表 cid对应上面的ID 二. //获取所有的数据 $pdo = new PDO("mysql:host=localhost;dbname=lamp108",'root',''); $pdo->query("set names gbk"); $stmt = $pdo->query("select * from cate2"); $data = $stmt->fetchAll(2); func

无限分类树操作

获取相应分类id的分类树: public static function getCategoryTree($id){ //$model=M('category'); if($id>0){ $obj=self::selectTable('category',array('id'=>$id),true);//$model->where(array('id'=>$id))->find(); if(!is_null($obj)){ $childList=self::selectTab

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

1.session的注意点:@session_start();//这个配置需要注意,session开启中会有影响,所以使用错误抑制符进行限制[并且使用php.ini对session进行自动开启] session_start()前的输出问题:[session信息本身会增加到http头信息,也就是http主体不能在头前]对php.ini中的输出缓存进行配置,out_buffer的配置[注意:开启之后能够保证输出内容在脚本中缓存] [注意](1)脚本中session变量的键只能是字符串类型的[$_SE

PHP无限分类树算法相关

一.找儿子 1.引用算法找儿子 /**  * 创建子节点树形数组  * 参数  * $ar 数组,邻接列表方式组织的数据  * $id 数组中作为主键的下标或关联键名  * $pid 数组中作为父键的下标或关联键名  * 返回 多维数组  **/ function find_child($ar, $id='id', $pid='pid') {     foreach($ar as $v) $t[$v[$id]] = $v;     foreach ($t as $k => $item){    

无限分类之无限方法

一次查询N次递归  方法一 测试数据 点我 //获取所有的数据 $pdo = new PDO("mysql:host=localhost;dbname=lamp108",'root','root'); $stmt = $pdo->query("select * from cate2"); $data = $stmt->fetchAll(2); function getcate4($data,$pid = 0,$level=0){ $level++; $c

数据表的无限分类

一.什么是无限分类? 无限级别的向下分类 二.无限分类数据表的设计 id name pid path  (级别) 1 国际新闻   0 0  (顶级分类) 2 国内新闻   0 0  (顶级分类) 3 国际娱乐新闻   1 0-3  (上级分类级别-本分类主键ID) 4 国际体育新闻   1 0-4 5 国内娱乐新闻   2 0-5 6 国内体育新闻   2 0-6 7 足球新闻   4 0-4-7 8 篮球新闻   6 0-6-8 原文地址:https://www.cnblogs.com/zh

父子分类与无限分类

一:父子分类 '''父子分类效果 1北京 0 2-海淀1 4--sb镇2 -昌平 3 上海 0 -青浦 --徐泾镇 -闵行 ''' data_dict = [ {"category_id": 1, "name": "北京", "parent_id": 0}, {"category_id": 2, "name": "上海", "parent_id":

php不用递归完成无限分类,从表设计入手完整演示过程

无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, 首先我们先做视图界面, <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>白超华-博客园</title> &

php基于左右值排序的无限分类算法

PHP无限分类[左右值]算法 <?php /** * 基于左右值排序的无限分类算法 * 数据库结果为 CREATE TABLE om_catagory ( CatagoryID int(10) unsigned NOT NULL auto_increment, Name varchar(50) default '', Lft int(10) unsigned NOT NULL default '0', Rgt int(10) unsigned NOT NULL default '0', PRIM