美文网首页
递归的实例

递归的实例

作者: wandx | 来源:发表于2019-02-21 20:10 被阅读0次

刚出来混的时候,对递归不是特别懂,后来多研究了会儿,这时候把之前的东西补上,汇成文档的形式记录下来。

 //递归无限极分类
    private function makeTree($list,$pk = 'id', $pid='pid',$name='child',$root=0)
    {
        $tree = array();
        foreach ($list as $key=>$val){
            if ($val[$pid] == $root){
                unset($list[$key]);
                if (!empty($list)){
                    $tmpChild = self::makeTree($list,$pk,$pid,$name,$val[$pk]);
                    if (!empty($tmpChild)){
                        $val[$name] = $tmpChild;
                    }
                }
                $tree[] = $val;
            }
        }
        return $tree;
    }

如果调用的话,可以像下面的

 $province = DB::select("select 0 as pid,Code as id,Name from fl_province order by code");
        $city = DB::table('fl_city')
            ->select('ProAdCode as pid','CityAdCode as id','Name')
            ->get()->toArray();
        $county = DB::table('fl_county')
            ->select('AdminCode as id','CityAdCode as pid','Name')
            ->get()->toArray();
        $data = array_merge($province,$city,$county);
        foreach ($data as $v)
        {
            $list[] = [
                'value' => $v->id,
                'pid' => $v->pid,
                'label' => $v->Name,
            ];
        }

        $list = $this->makeTree($list,'value','pid','children',0);
        return $list;

这个是用的省市县三级来测试的,在有些菜单想要是下面图片的树结构的时候,就可以使用此方法来做。


结果.png

相关文章

  • Java 目录操作

    Java 实例 - 递归创建目录 以下实例演示了使用 File 类的 mkdirs() 实现递归创建目录 : 编译...

  • 递归实例

    递归基本概念 程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 ...

  • 递归的实例

    刚出来混的时候,对递归不是特别懂,后来多研究了会儿,这时候把之前的东西补上,汇成文档的形式记录下来。 如果调用的话...

  • Rust语言编程实例100题-028

    Rust语言编程实例100题-028 题目:递归练习。程序调用自身的编程技巧称为递归( recursion)。递归...

  • Rust语言编程实例100题-026

    Rust语言编程实例100题-026 题目:递归练习。程序调用自身的编程技巧称为递归( recursion)。递归...

  • Rust语言编程实例100题-027

    Rust语言编程实例100题-027 题目:递归练习。程序调用自身的编程技巧称为递归( recursion)。递归...

  • Java实例-目录操作

    1、Java 实例 - 递归创建目录:使用 File 类的 mkdirs() 实现递归创建目录。 public c...

  • 浅析javascript递归

    浅析递归 一、写递归的思路 1、先写主体2、假设函数具备该功能3、补充边界 二、实例 1、先来个简单的递归 // ...

  • 4.数据降维--Recursive feature elimin

    一、原理 二、代码实例 对分类数据,进行递归特征消除

  • 父子组件通信

    vue之父子组件间通信实例讲解(props、emit) Vue.js 递归组件实现树形菜单(实例分享)

网友评论

      本文标题:递归的实例

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