美文网首页
php实现无限极分类

php实现无限极分类

作者: warcello | 来源:发表于2018-05-15 11:24 被阅读40次

一、两种实现php无限极分类

设置原始数据

public function index()
    {
        $items = array(
            1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'),
            2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'),
            3 => array('id' => 3, 'pid' => 1, 'name' => '南昌市'),
            4 => array('id' => 4, 'pid' => 2, 'name' => '哈尔滨市'),
            5 => array('id' => 5, 'pid' => 2, 'name' => '鸡西市'),
            6 => array('id' => 6, 'pid' => 4, 'name' => '香坊区'),
            7 => array('id' => 7, 'pid' => 4, 'name' => '南岗区'),
            8 => array('id' => 8, 'pid' => 6, 'name' => '和兴路'),
            9 => array('id' => 9, 'pid' => 7, 'name' => '西大直街'),
            10 => array('id' => 10, 'pid' => 8, 'name' => '东北林业大学'),
            11 => array('id' => 11, 'pid' => 9, 'name' => '哈尔滨工业大学'),
            12 => array('id' => 12, 'pid' => 8, 'name' => '哈尔滨师范大学'),
            13 => array('id' => 13, 'pid' => 1, 'name' => '赣州市'),
            14 => array('id' => 14, 'pid' => 13, 'name' => '赣县'),
            15 => array('id' => 15, 'pid' => 13, 'name' => '于都县'),
            16 => array('id' => 16, 'pid' => 14, 'name' => '茅店镇'),
            17 => array('id' => 17, 'pid' => 14, 'name' => '大田乡'),
            18 => array('id' => 18, 'pid' => 16, 'name' => '义源村'),
            19 => array('id' => 19, 'pid' => 16, 'name' => '上坝村'),
        );

        print_r($this->getTree1($items));
        print_r($this->getTree1($items));
    }

1. 使用php递归实现php无限极分类

通过foreach循环实现无限极分类这种方式比较好理解

public function getTree1($items,$pid=0)
    {
        $array = [];
        foreach ($items as $key => $item) {
            if( $item['pid'] == $pid )
            {
                $array[$key] = $val;
                $array[$key]['son'] = $this->getTree1( $items, $item['pid']);
            }
        }
        return $array;
    }

2.通过引用实现php无限极分类

/**
     * 递归加引用实现无限极分类
     * @param $items
     * @return array
     */
    public function getTree2($items)
    {
        $array = [];
        foreach ($items as $item)
        {
            if(isset($items[$item['pid']]))
            {
                $items[$item['pid']]['son'][] = &$items[$item['id']];
            }else {
                $array[] = &$items[$item['id']];
            }
        }
        return $array;
    }

相关文章

  • php实现无限极分类

    一、两种实现php无限极分类 设置原始数据 1. 使用php递归实现php无限极分类 通过foreach循环实现无...

  • PHP 无限极分类

    概述   在实际工作中,经常要用到无限极分类。如导航表等等。到网上一搜php无限极分类,很多,但好多都是一个,并且...

  • PHP实现无限极分类的两种方式,递归和引用

    PHP实现无限极分类的两种方式,递归和引用 转载叶落无痕123 最后发布于2018-09-19 19:29:03 ...

  • PHP无限极分类

    要了解这两种方式具体内容,可以去查看这篇博客: 左右值无限分类实现算法 本文主要提供两种将符合无限极分类格式的二维...

  • php无限极分类

    递归--无限极分类 递归--子孙树转二维数组 可以配合Nestable使用 递归--获取树所有叶子节点 结果1 结...

  • PHP 无限极分类

    1.循环迭代实现无限极分类 输出结果如下: 分析:这个算法利用了循环迭代,将线性结构按照父子关系以树形结构输出,算...

  • PHP无限极分类技术

    什么是无限分类? 无限分类就是一个分类下面可以创建多个子类,而其子类下面亦可以创建不同子类,如此往复,没有终点; ...

  • php无限分类组件

    PHP系统树图 github项目地址 PHP系统树图可快速的处理无限极分类的业务需求 提供两种不同的数据结构和三种...

  • php 引用算法无限极分类

  • 递归实现无限极分类

网友评论

      本文标题:php实现无限极分类

      本文链接:https://www.haomeiwen.com/subject/nveedftx.html