把一个表里的市、区、店铺,按顺序放进数组里.
程序员文章站
2024-03-24 21:04:04
...
public function SuperData(){
//查询所有市
$shi=$this->group('shi')->field('shi')->select();
//查询所有市和区
$qu=$this->group('shi,qu')->field('shi,qu')->select();
//查询所有市、区和店名
$res=$this->alias('a')
->join("agency b",'b.id=a.agencyid')
->group('shi,qu,agencyid')
->field('shi,qu,shop')
->select();
$arr=[];
//循环所有市,并把市作为第一维的下标
foreach ($shi as $shis){
$arr[$shis['shi']]=[];
//循环所有区
foreach ($qu as $qus){
//判断该区是否在所循环的市中
if($shis['shi']==$qus['shi']){
//把区作为第二维的下标
$arr[$shis['shi']][$qus['qu']]=[];
//循环所有店铺
foreach($res as $v){
//判断店铺是否在循环的区中
if($qus['qu']==$v['qu']){
//第三维存储对应的店铺名
$arr[$shis['shi']][$qus['qu']][]=$v['shop'];
}
}
}
}
}
return $arr;
}