当前位置 博文首页 > u012442504的专栏:php后台无限分类的三种方式,通用于layui树形

    u012442504的专栏:php后台无限分类的三种方式,通用于layui树形

    作者:[db:作者] 时间:2021-09-23 10:32

    无限分类,是指从一个最高分类开始,每个子分类都可以分出自己的若干个子分类,可以一直分下去,称为无限级分类;

    下面是对省市县的无限极分类的列子。数据库如图:

    ?

    /**
     * @Description: 无限极分类一
     * @Author: Yang
     * @param $data  数据库数据
     * @param int $parent_id   父级ID
     * @return array
     */
    function getTree1($data, $parent_id = 0)
    {
        $tree = array();
        foreach ($data as $k => $v) {
            if ($v["parent_id"] == $parent_id) {
                unset($data[$k]);
                if (!empty($data)) {
                    $children = getTree1($data, $v["id"]);
                    if (!empty($children)) {
                        $v["_child"] = $children;
                    }
                }
                $tree[] = $v;
            }
        }
        return $tree;
    }
    
    
    /**
     * @Description: 无限极分类二
     * @Author: Yang
     * @param $data   数据库数据
     * @param int $parent_id  父级ID
     * @param int $level  等级
     * @return array
     */
    function getTree2($data, $parent_id = 0, $level = 0)
    {
        static $tree = array();
        foreach ($data as $k => $v) {
            if ($v["parent_id"] == $parent_id) {
                $v["level"] = $level;
                $tree[] = $v;
                getTree2($data, $v["id"], $level + 1);
            }
        }
        return $tree;
    }
    
    /**
     * @Description: 无限分类三:面包屑导航
     * @Author: Yang
     * @param $data  数据库数据
     * @param $id    分类ID
     * @return array
     */
    function getCrumbsBar($data, $id) {
        static $tree = array();
        foreach ($data as $k => $v) {
            if ($v["id"] == $id) {
                getCrumbsBar($data, $v["parent_id"]);
                $tree[] = $v;
            }
        }
        return $tree;
    }

    ?

    cs