国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

TP框架實(shí)現(xiàn)獲取無限極分類的樹

2019-11-11 04:39:47
字體:
供稿:網(wǎng)友
看了很多別人的實(shí)現(xiàn)方法,都沒看明白,所以自己寫一個。
數(shù)據(jù)庫結(jié)構(gòu)如下:
model里面這樣子
<?php/** * Created by PhpStorm. * User: 王柏建 * Date: 2016/10/09 * Time: 11:32 */namespace Api/Model;use Think/Model;class TypeModel extends Model{    //通過admin_id獲取分類    public static function getTypeByAdminId($admin_id){        return M('type')->where(array("admin_id"=>$admin_id))->select();    }    //通過條件獲取一個分類    public static function getTypeByWhere($where){        return M('type')->where($where)->find();    }        //通過條件獲取部分分類    public static function getAllTypeByWhere($where){        return M('type')->where($where)->field("clothes_type_id,clothes_type_father_id,clothes_type_name,clothes_type_icon_url")->select();    }}
最后這里是controller里面的寫法。
<?phpnamespace Api/Controller;use Api/Model/TypeModel;use Think/Controller;class TreeController extends Controller {    //記錄層    public $div = [];    //記錄樹    public $tree = [];    //返回樹    public function returnTree(){        $tree = [];        //獲取目前已經(jīng)有的結(jié)構(gòu)        $this->getChild(0);  //從第一級開始        //dump($this->tree);   //這里是輸出數(shù)組        $this->AjaxReturn($this->tree,"json");   //輸出json    }    //獲取某個分類的子分類以及下面的服飾    public function getChild($clothes_type_father_id){        $types = TypeModel::getAllTypeByWhere(array("clothes_type_father_id"=>$clothes_type_father_id));        if(!$types){            array_pop($this->div);            return;        }        if($clothes_type_father_id == 0){            $this->div[] = 0;        }        else{            $this->div[] = TypeModel::getTypeByWhere(array('clothes_type_id'=>$clothes_type_father_id))['clothes_type_id'];        }        //將獲取到的東西放到$this->tree里面        $this->putData($this->tree,$this->div,$types);        //循環(huán)這一級里面的類,再獲取其子類和下面的服飾        foreach($types as $t){            $this->getChild($t['clothes_type_id']);        }    }    //插入數(shù)據(jù)到特定下標(biāo)    public function putData(&$array,$down,$data){        $j = [];        $k = 0;        foreach($down as $d){            if($j == null){                $j[$k] = &$array[$d];            }            else{                $j[$k] = &$j[$k++][$d]['son'];            }        }        $count = count($j)-1;        foreach($data as $d){            $j[$count][$d['clothes_type_id']] = $d;        }        unset($j);        unset($k);    }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆德县| 绥芬河市| 商河县| 池州市| 汾西县| 宁蒗| 巴南区| 锡林郭勒盟| 石家庄市| 莱芜市| 临颍县| 临颍县| 上栗县| 浦东新区| 图木舒克市| 内黄县| 阿拉尔市| 澜沧| 新蔡县| 印江| 泗水县| 拜泉县| 灵寿县| 察隅县| 上思县| 陵川县| 新丰县| 伊金霍洛旗| 新丰县| 揭阳市| 皮山县| 寿光市| 固镇县| 涪陵区| 绵竹市| 滕州市| 阿坝县| 金华市| 故城县| 青州市| 凌云县|