THinkPHP5.0 获取省市区三级名称

 

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;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值