无限分类

举例:省份,城市,地区
一般是用三张表来相互关联例如


无限分类_第1张图片
省、市、区表

或者使用一张表来表示例如:


无限分类_第2张图片
4A57DF45-F0E8-4F46-AB68-4A2BC943CA2D.png

用一张表来表示的这种类型可以扩展成无限分类
无限分类代码
//数组无限分类,分类成多维数组
    public function treeAction($arr,$pid=0){
        $tree = array();
        foreach ($arr as $v) {
            if ($v['parent_id'] == $pid) {
                $son = $this->treeAction($arr,$v['cat_id']);
                if (!empty($son)) {
                    $v['son'] = $son;
                }
                $tree[] = $v;
            }
        }
        return $tree;
    }

    //数组无限分类,分类成一维数组
    public function tree($arr,$pid=0,$level=0){
        //创建一个数组
        static $tree = array();
        foreach ($arr as $v) {
            if ($v['parent_id'] == $pid) {
                //在数组里添加元素
                $v['level'] = $level;
                $tree[] = $v;
                $this->tree($arr,$v['cat_id'],$level+1);
            }
        }
        return $tree;
    }

你可能感兴趣的:(无限分类)