当前位置: 首页 > news >正文

省市区三级联动数据+PHP接口

数据源放在下面了 夸克网盘

PHP接口获取省市区数据: 

 is_all :获取全部数据,不做处理

不传is_all,默认返回省级数据

传province_code 返回省级下面的市级数据

传province_code 和 city_code 返回省市下面的县区级数据

地区数据源的文件, 异常和返回格式 对应好 就可以了

    /*** 获取地区数据* @return \think\response\Json* @throws BusinessException*/public function getAreas(): \think\response\Json{// 省份编号$provinceCode = $this->request->param('province_code');// 城市编号$cityCode = $this->request->param('city_code');// 是否全部返回$isAll = $this->request->param('is_all');// 读取地区数据文件$filePath = public_path() . '/static/area/citys.json';// 判断文件是否存在if (!file_exists($filePath)) {throw new BusinessException(Code::NOT_FOUND, '地区数据不存在');}// 读取文件 并 解析为数组$areaData = json_decode(file_get_contents($filePath), true);if (!empty($isAll) && $isAll == 1) {return result(Code::SUCCESS, '获取成功', $areaData);}// 如果省份编号和城市编号都为空 --> 获取省份数据if (empty($provinceCode) && empty($cityCode)) {$provinces = [];foreach ($areaData as $province) {$provinces[] = ['province' => $province['province'],'code' => $province['code'],];}return result(Code::SUCCESS, '获取成功', $provinces);// 如果省份编号不为空,城市编号不为空 --> 获取城市数据} else if (!empty($provinceCode) && empty($cityCode)) {$provinceCities = [];foreach ($areaData as $province) {// 如果当前省份编号与传入的省份编号一致if ($province['code'] === $provinceCode) {// 遍历城市foreach ($province['citys'] as $city) {$provinceCities[] = ['city' => $city['city'],'code' => $city['code'],];}break;}}// 如果城市数据为空if (empty($provinceCities)) {throw new BusinessException(Code::NOT_FOUND, '省份不存在');}return result(Code::SUCCESS, '获取成功', $provinceCities);// 如果省份编号不为空,城市编号不为空 --> 获取区县数据} else {$areas = [];foreach ($areaData as $province) {// 如果当前省份编号与传入的省份编号一致if ($province['code'] === $provinceCode) {// 遍历城市foreach ($province['citys'] as $city) {// 如果当前城市编号与传入的城市编号一致if ($city['code'] === $cityCode) {$areas = $city['areas'];break 2;}}}}// 如果区县数据为空if (empty($areas)) {throw new BusinessException(Code::NOT_FOUND, '城市不存在');}return result(Code::SUCCESS, '获取成功', $areas);}}

链接:下载地址
提取码:e78p


http://www.mrgr.cn/news/4561.html

相关文章:

  • 字符串函数———C语言
  • 【教程】Ubuntu给pycharm添加侧边栏快捷方式
  • Appium定位元素
  • 【论文阅读】DaST: Data-free Substitute Training for Adversarial Attacks(2020)
  • 优思学院|如何在30分钟内评审一家供应商?SQE必需知道的11点
  • 【Docker系列】Docker 容器时区设置指南
  • 纯前端导出excel插件pikaz-excel-js使用小结
  • 小程序学习day09-WXS脚本、自定义组件-组件的创建、引用、组件与页面的区别、组件的样式隔离
  • linux下搭建MySQL8.0.25一主一从
  • 【Vitis开发】下载程序时Memory write error at 0x0,Cotex-A53 #0:EDITR not ready问题的解决
  • Android 架构模式之 MVC
  • Vue: v-html安全性问题
  • Go语言基础--嵌套循环(多重循环)
  • 论文翻译:Universal and Transferable Adversarial Attacks on Aligned Language Models
  • [数据集][目标检测]街灯路灯检测数据集VOC+YOLO格式1893张1类别
  • LCP9回文数[leetcode-9-easy]
  • vue面试题十七
  • 【原创】java+swing+mysql学生请假管理系统设计与实现
  • 小米便签——ui包详细解读
  • Unity3D URP 后处理如何作用于 UI 控件 Image 的详解