zoukankan      html  css  js  c++  java
  • php 两种获取分类树的方法

    php 两种获取分类树的方法

    1.

    /**
    * 获取分类树
    * @param array $array 数据源
    * @param int $pid 父级ID
    * @param int $level 分类级别
    * @return string
    */
    function getCategory($array, $pid =0, $level = 0){
    //声明静态数组,避免递归调用时,多次声明导致数组覆盖
    static $list = [];
    foreach ($array as $key => $value){
    //第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点
    if ($value['parent_id'] == $pid){
    //父节点为根节点的节点,级别为0,也就是第一级
    $value['level'] = $level;
    //把数组放到list中
    $list[] = $value;
    //把这个节点从数组中移除,减少后续递归消耗
    unset($array[$key]);
    //开始递归,查找父ID为该节点ID的节点,级别则为原级别+1
    getCategory($array, $value['cat_id'], $level+1);
    }
    }
    return $list;
    }


    2、

    function getTree($items,$pid ="parent_id") {
    $map = [];
    $tree = [];
    foreach ($items as &$it){
    $it['id'] = (string)$it['cat_id'];
    $it['label'] = $it['cat_name'];
    unset($it['cat_id']);
    unset($it['cat_name']);
    $map[$it['id']] = &$it;
    } //数据的ID名生成新的引用索引树
    foreach ($items as &$at){
    $parent = &$map[$at[$pid]];
    if($parent) {
    $parent['children'][] = &$at;
    }else{
    $tree[] = &$at;
    }
    }
    return $tree;
    }
  • 相关阅读:
    初始化webpack项目
    GCN 实现3 :代码解析
    GCN实现3
    GCN 简单numpy实现
    GCN python 实现2:利用GCN进行节点分类
    GCN
    Transformer —— attention is all you need
    多任务学习Multi-task-learning MTL
    两个概念:CCA和LDA
    Transfer learning
  • 原文地址:https://www.cnblogs.com/yuuje/p/10993117.html
Copyright © 2011-2022 走看看