PHP格式化全国省市区列表

 一、代码部分

/*** 获取全国省市区列表(格式化后)*/public function getRegionList(){$data = CoreRegion::find()->select(['national_code', 'region_name', 'parent_id', 'region_level'])->asArray()->all();$data = $this->assembleRegionData($data);return $data;}/*** 重组地区数据*/public function assembleRegionData($data, $pid = 0){$list = [];foreach ($data as $k => $v) {if ($v['parent_id'] == $pid) {// 继续查找其子市区县$v['list'] = $this->assembleRegionData($data, $v['national_code']);// 如果子地区为空,则unset掉if (empty($v['list'])) {unset($v['list']);}$list[] = $v;}}return $list;}

 

二、效果

 

三、改进代码,将地区列表数据存入缓存(可选)

由于地区列表数据基本是不会变的,所以最好是存入redis等缓存数据库,这里将数据存入redis

代码:

 public function getRegionList(){$region_key = 'region_list_key_redis';$data = \Yii::$app->cache->get($region_key);// 如果数据不空,则返回数据if (isset($data) && !empty($data)) {return $data;} else {// 如果数据为空,则查询之后设置缓存,并返回数据$data = CoreRegion::find()->select(['national_code', 'region_name', 'parent_id'])->asArray()->all();$data = $this->assembleRegionData($data);\Yii::$app->cache->set($region_key, $data);return $data;}}

 

 

四、sql 文件附件

https://download.csdn.net/download/m_nanle_xiaobudiu/10904306

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C语言开发从入门到精通》一2.4 技术解惑

本节书摘来自异步社区《C语言开发从入门到精通》一书中的第2章,第2.4节,作者王长青 , 韩海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.4 技术解惑 2.4.1 安装Visual Studio的几个常见问题 Visual Studio 2010容量巨大&…

POM思想__首页页面元素查找、功能点实现进行封装

一、代码如下 package www.gui.huohu.pom;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.sele…

061_Apex 异常捕捉

Trigger 中的错误处理 在 Trigger 中,我们可以为进行操作的数据进行验证,类似于验证规则。如果遇到不符合条件的数据,可以通过 addError() 函数来将错误显示给用户,并记录日志。 在如下代码中,当一个“业务机会”对象被…

从 C# 崩溃异常 中研究 页堆 布局

一:背景 1.讲故事最近遇到一位朋友的程序崩溃,发现崩溃点在富编辑器 msftedit 上,这个不是重点,重点在于发现他已经开启了 页堆 ,看样子是做了最后的挣扎。0:000> !analyze -v EXCEPTION_RECORD: (.exr -1) Except…

Win10笔记本不显示wifi列表

一、问题描述 1、连接有线网络时,只显示连接到的有线网络,而不显示wifi列表 2、不连接有线网络时,同样不显示wifi列表 二、解决方案 1、Win R 打开运行,并输入services.msc 2、回车确定,找到WLAN AutoConfig项&…

《游戏大师Chris Crawford谈互动叙事》一22.1 互动叙事前途无量

本节书摘来异步社区《游戏大师Chris Crawford谈互动叙事》一书中的第22章,第22.1节,作者: 【美】Chris Crawford译者: 方舟 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。 22.1 互动…

交换两个局部变量Integer的值

反射是很强大的,谁说的final修饰的就不能改变, 通过反射获取成员变量,之后可以取消访问修饰符,也就是说private的也可以访问, 在修改常量(final修饰的),之后就可以对其做任何操作了 …

搭建WeApacheb网站服务器

本地yum源安装mkdir /opt/dvd (先用mkdir去根下opt目录下建一个名字叫dvd的目录)mount /dev/sr0 /opt/dvd (用mount命令,挂载光盘设备(/dev/sr0),将光盘挂载到刚刚建立的dvd目录下(/opt/dvd))写yum源配置文件|-cd…

PHP的构成及生命周期

一、PHP开源源代码下载地址: https://github.com/php/php-src.git 二、PHP的构成 1、目录结构 2、目录分析 (1)sapi目录是PHP的应用接口层。 (2)main为php的主要代码,主要是输入/输出、Web通信、PHP框架…

《Adobe After Effects CS6完全剖析》——动画:最重要的是关系

本节书摘来自异步社区《Adobe After Effects CS6完全剖析》一书中的第2章,动画:最重要的是关系,作者 【美】Mark Christiansen(马克克里斯琴森),译者 苗玉敏,郭圣路,曹玉臣&#xff…

Oracle即将发布的全新Java垃圾收集器 ZGC

Java 11的特性集合已经确定,其中包含了一些非常棒的特性。新版本提供了一个全新的垃圾回收器ZGC,它由甲骨文开发,承诺在TB级别的堆上实现非常低的停顿时间。在本文中,我们将介绍甲骨文开发ZGC的动机、ZGC的技术概览以及ZGC带来的一…

如何获取 OSS AccessKeyId、AccessKeySecret

开通阿里云oss:https://www.aliyun.com/product/oss 1、点击概览 — AccessKey 注:官方链接 2、出现下图,选择“开始使用子用户Access Key” 3、填写用户名,并点击确定 4、这时会给你的手机发送验证码确定是本人操作,…

【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用

【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用 广东职业技术学院 欧浩源 2017-10-15 1、引言 实现网络爬虫的第一步就是要建立网络连接并向服务器或网页等网络资源发起请求。urllib是目前最常用的做法,然而Requests会比urlib更加方便,能…

5分钟内看懂机器学习和深度学习的区别

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文由liuxuewen 发表于云社区专栏 在本文中,我们将研究深度学习和机器学习之间的差异。我们将逐一了解它们,然后讨论他们在各个方面的不同之处。除了深度学习和机器学习的比较外&am…

《零信任的基石:使用 SPIFFE 为基础设施创建通用身份》翻译电子书分享

国庆假期除了去浙江和安徽玩了一圈欣赏江南山水和徽派建筑之外,还抽空翻译了一本电子书。本书译自 Solving the Bottom Turtle — a SPIFFE Way to Establish Trust in Your Infrastructure via Universal Identity。你可以选择在线阅读(推荐&#xff09…

《Outlook时间整理术》一创建和使用自己的文件夹结构

本节书摘来异步社区《Outlook时间整理术》一书中的第1章,作者: 【德】Lothar Seiwert , Holger Woeltje 译者: 欧阳宇,更多章节内容可以访问云栖社区“异步社区”公众号查看。 创建和使用自己的文件夹结构 花费约两小时为电子邮件…

PHP 使用 OSS上传文件

一、安装阿里云 oss sdk 1、在网站根目录执行下面命令,安装oss sdk。 composer require aliyuncs/oss-sdk-php 安装后,会在 网站根目录/vendor 下找到一个名为 aliyuncs 的文件夹。 注:[阿里云 oss - sdk 文档(可不用关注&…

webpack常用配置

1.加载CSS 命令行输入 npm install --save-dev style-loader css-loader webpack.config.js配置如下 const path require(path);module.exports {entry: ./src/index.js,output: {filename: bundle.js,path: path.resolve(__dirname, dist)},module: {rules: [{test: /\.css$…

《实用软件架构:从系统环境到软件部署 》——2.4 架构视图与架构视点

本节书摘来自华章出版社《实用软件架构:从系统环境到软件部署》一书中的第2章,第2.4节,作者:[印]蒂拉克米特拉(Tilak Mitra)著,爱飞翔 译,更多章节内容可以访问云栖社区“华章计算机…

TCP:当初取代NCP,如今害怕被取代

我叫TCP(Transmission Control Protocol)也叫传输控制协议。不觉回忆1983年,亲手将NCP协议淘汰,取而代之的是我,成了火遍大江南北的网络红人之一。现如今,我感受到前所未有的恐惧,因为我一生的敌…