public function address(){
/*注意:修改里面内容的时候,需要将缓存清空Cache::rm('area'); */
$_province=Cache::get('area');
if(empty($_province)) {
$province = db('area')->where(array('pid' => '0'))->field('name,id')->select();
//得到所有省的ID集成查询所有的城市
foreach ($province as $k => $v) {
$province_temp[$k] = $v['id'];
}
$province_id_collection = implode(',', $province_temp);
$city = db('area')->where(array('pid' => array('in', $province_id_collection)))->select();
/ /得到城市的ID集成查询所有的区
foreach ($city as $k => $v) {
$city_temp[$k] = $v['id'];
}
$city_id_collection = implode(',', $city_temp);
$area = db('area')->where(array('pid' => array('in', $city_id_collection)))->select();
//把所有的区按PID分组=城市的ID
foreach ($area as $k => $v) {
$_area[$v['pid']][] = $v;
}
//把分组后的区域放到城市数组里
foreach ($city as $k => $v) {
$_city[$k] = $v;
if (empty($_area[$v['id']])) {
$_city[$k]['item'] = null;
} else {
$_city[$k]['item'] = $_area[$v['id']];
}
}
//把城市新的数组进行分组
foreach ($_city as $k => $v) {
$_temp_city[$v['pid']][] = $v;
}
//把分组后的城市(组合后的数据)放至省份数组里
foreach ($province as $k => $v) {
$_province[$k] = $v;
if (empty($_temp_city[$v['id']])) {
$_province[$k]['item'] = null;
} else {
$_province[$k]['item'] = $_temp_city[$v['id']];
}
}
Cache::set('area',$_province);
}
retrun $_province;
}