无线分类新写法,是不是很吊@!
admin
2023-06-23 12:42:26
0

 * @license
 * @Copyright (c) 2009-2016 http://www.lvmaque.com All rights reserved.
 */
class Model_Shop_Class{

    protected  $_table_name = 'shop_goods_class';
    protected  $_primary_key= 'gc_id';

    /**
     * ***************************************************************
     * 获得排列好的分类信息 2016年04月26日18:43:22
     * ***************************************************************
     * @param
     * @return void
     * @author 王迪<2880707519@qq.com>
     * @license
     * @Copyright (c) 2009-2016 http://www.lvmaque.com All rights reserved.
     */
    public static function getList(){
        $parent_0   =  "select gc_id,gc_parent_id from sline_shop_goods_class where gc_parent_id=0";
        $list       =  DB::query(Kohana_Database::SELECT,$parent_0)->execute()->as_array();
        $parentArray=array();
        $parentArray[0]=$list;
        $parentArray['findIds']=$list;

        self::getChild($parentArray);
        return $parentArray;
    }


    //查找子集
    public static function getChild(&$parent){
        //id的数组
        $idArray = Kohana_Util::only_array($parent['findIds'],'gc_id');

        //id连接城字符串
        $idString = implode(',',$idArray);

        $child = "select gc_id,gc_parent_id from sline_shop_goods_class where gc_parent_id in ({$idString})";
        $childRes = DB::query(Kohana_Database::SELECT,$child)->execute()->as_array();

        if(count($childRes)<1){
            return;
        }

        $parent['findIds']=$childRes;

        //按parent_id把数组存储起来
        foreach($childRes as $v){
            $parent[$v['gc_parent_id']][]=$v;
        }

        self::getChild($parent);
    }
}

这么做查数据库的效率会比较高,是一层一层的往下查的

找子集的时候就从parent_id等于零开始查找,

然后循环0键值对应的数组,

再找里面的parent_id对应的键值是否存在,如果存在就把里面的继续遍历,如果不存在就结束递归!

O(∩_∩)O哈哈哈~!,我是不是很6,绝对原创,亲!转载只要998!

相关内容

热门资讯

澳弘电子获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示澳弘电子(605058)新获得一项实用新型专利授权,专利名为“...
菲总统日本国会演说:双方关系已... 据凤凰卫视报道,菲律宾总统马科斯28日在日本国会发表演说,回顾了菲日两国关系的发展历程,并就双边合作...
李立功:以自主算力底座支撑人工... 天津北方网讯:5月28日,在2026世界智能产业博览会开幕式上,中国电子信息产业集团有限公司董事长李...
SK海力士推出集成散热HBM内... 韩国半导体巨头SK海力士宣布推出一种面向AI数据中心的新型高带宽内存(HBM),通过在内存封装内部集...
《通信世界》2026年第5期上... 《通信世界》2026年4月20日 第4期 本期专题 智能体:重塑ICT产业生态 随着人工智能与大模型...
海军黄石舰最新演练画面 近日,北部战区海军某支队黄石舰开展海上多课目实战化训练。训练全程不设脚本、临机设置险情,突出专攻精练...
美财长:特朗普不会接受“糟糕的... △美国财政部长贝森特(资料图)当地时间5月28日,美国财政部长贝森特在简报会上表示,美国与伊朗谈判团...
知情人士:伊朗方面尚未同意任何... 当地时间5月28日,伊朗谈判代表团媒体团队成员赛义德·阿加卢表示,截至目前,伊朗方面尚未同意任何谅解...
古巴外长:古美双边谈判没有取得... △古巴外交部长罗德里格斯(资料图)当地时间5月28日,古巴外交部长布鲁诺·罗德里格斯表示,古巴与美国...
伊朗最高领袖强调维护民族团结 伊朗最高领袖穆杰塔巴28日发表书面讲话,强调维护民族团结与社会凝聚力,并呼吁伊朗各界共同维护国家统一...