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;
    }
  • 相关阅读:
    group by;having;order by
    oracle官方文档
    oracle正则表达式函数和正则表达式简介
    oracle系统函数
    oracle系统表
    windows搭建ftp服务器
    开机自动挂载
    linux修改设置ip地址
    My First Web Server
    为什么要写博客?
  • 原文地址:https://www.cnblogs.com/yuuje/p/10993117.html
Copyright © 2011-2022 走看看