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.pswp.cn/news/282173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282173.shtml
英文地址,請注明出處:http://en.pswp.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協議淘汰,取而代之的是我,成了火遍大江南北的網絡紅人之一。現如今,我感受到前所未有的恐懼,因為我一生的敵…