zoukankan      html  css  js  c++  java
  • PHP 无限分级类

    平时有用到的无限分级方法归纳:

    /**
     * 无限分级类
     * @author Administrator
     *
     */
    class Tree
    {
        //组合一维数组
        public static function unlimitForLevel($cate, $html = '├─', $pid = 0, $level = 0)
        {
            $arr = [];
            foreach ($cate as $v) {
                if ($v['pid'] == $pid) {
                    $v['level'] = $level + 1;
                    $v['html']  = str_repeat($html, $level);
                    $arr[]      = $v;
                    $arr        = array_merge($arr, self::unlimitForLevel($cate, $html, $v['id'], $level + 1));
                }
            }
    
            return $arr;
        }
    
        //组合多维数组
        public static function unlimitForLayer($cate, $pid = 0, $name = 'child')
        {
            $arr = [];
            foreach ($cate as $v) {
                if ($v['pid'] == $pid) {
                    $v[$name] = self::unlimitForLayer($cate, $v['id'], $name);
                    $arr[]    = $v;
                }
            }
    
            return $arr;
        }
    
        //传递子分类的id返回所有的父级分类
        public static function getParents($cate, $id)
        {
            $arr = [];
            foreach ($cate as $v) {
                if ($v['id'] == $id) {
                    $arr[] = $v;
                    $arr   = array_merge(self::getParents($cate, $v['pid']), $arr);
                }
            }
    
            return $arr;
        }
    
        //传递子分类的id返回所有的父级分类
        public static function getParentsIds($cate, $id)
        {
            $arr = [];
            foreach ($cate as $v) {
                if ($v['id'] == $id && $v['pid'] != 0) {
                    $arr[] = $v['pid'];
                    $arr   = array_merge(self::getParentsIds($cate, $v['pid']), $arr);
                }
            }
    
            return $arr;
        }
    
        //传递父级id返回所有子级id
        public static function getChildsId($cate, $pid)
        {
            $arr = [];
            foreach ($cate as $v) {
                if ($v['pid'] == $pid) {
                    $arr[] = $v['id'];
                    $arr   = array_merge($arr, self::getChildsId($cate, $v['id']));
                }
            }
    
            return $arr;
        }
    
        //传递父级id返回所有子级分类
        public static function getChilds($cate, $pid)
        {
            $arr = [];
            foreach ($cate as $v) {
                if ($v['pid'] == $pid) {
                    $arr[] = $v;
                    $arr   = array_merge($arr, self::getChilds($cate, $v['id']));
                }
            }
    
            return $arr;
        }
    
    }
  • 相关阅读:
    记我安装Caffe的血泪史(1)
    UWP连接mysql 实现数据远程备份
    数据库性能测试
    性能瓶颈分析定位
    系统安全性测试
    WEB安全性测试点
    jmeter测试报告分析
    Linux常用命令大全
    软件测试入门到飞升上仙之客户端
    软件测试入门到飞升上仙之web 端测试
  • 原文地址:https://www.cnblogs.com/jackzhuo/p/12985875.html
Copyright © 2011-2022 走看看