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分组=城市的IDforeach ($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;
}