zoukankan      html  css  js  c++  java
  • 无限极分类输出的方法

    数据:

    $data = array(
      array(
        'id' => 1,
        'parent_id' => 0,
        'name' => 'first'
      ),
      array(
        'id' => 2,
        'parent_id' => 1,
        'name' => 'second'
      ),
      array(
        'id' => 3,
        'parent_id' => 2,
        'name' => 'third'
      ),
      array(
        'id' => 4,
        'parent_id' => 3,
        'name' => 'forth'
      ),
    );

    调用:$res = $this->make_tree1($data);

    封装方法

    方法一:foreach循环

      

    //方法一:foreach循环实现无限极
    public function make_tree($list,$pk='id',$pid='parent_id',$child='children',$root=0)
    {
      $tree = array();
      $temp = array();
      foreach ($list as $data)
      {
        $temp[$data[$pk]] = $data;
      }
      foreach ($temp as $key =>$val)
      {
        if($val[$pid]==$root)
        { //代表跟节点
          $tree[]=& $temp[$key];
        }
        else
        {
        //找到其父类
        $temp[$val[$pid]][$child][]=& $temp[$key];
        }
      }
      return $tree;
    }

    //方法二:递归方法实现无限极
    public function make_tree1($list,$pk='id',$pid='parent_id',$child='children',$root=0)
    {
      $tree = array();
      foreach($list as $key=> $val)
      {
        if($val[$pid]==$root)
        {
          //获取当前$pid所有子类
          unset($list[$key]);
          if(!empty($list))
          {
            $child = $this->make_tree1($list,$pk,$pid,$child,$val[$pk]);
            if(!empty($child))
            {
              $val['_child'] = $child;
            }
          }
          $tree[]=$val;
        }
      }
      return $tree;
    }

  • 相关阅读:
    安装mongoDB时,总是报错,启动不了
    koa2路由
    异步操作async await
    nodeJs koa-generator脚手架
    nodeJs学习-19 个人博客案例-(1)数据字典
    nodeJs学习-18 mysql数据库了解
    nodeJs学习-17 博客案例
    nodeJs学习-16 数据字典示例
    前端图片压缩后,文件流上传
    Linux用户名显示-bash-4.1$快速排查
  • 原文地址:https://www.cnblogs.com/daxi-hu/p/8669561.html
Copyright © 2011-2022 走看看