省市縣,迴圈組裝,整合大陣列

2022-08-12 20:21:21 字數 1228 閱讀 6965

今天在公司提供乙個省市縣介面,原碼為-->

$ii=0;

foreach($sheng as $ckey=>$cval)else{

continue;

$cc++;

$jj++;

$ii++;

說明:省市縣,分別為三個陣列,一次性取出來的。

在這裡我寫了乙個迴圈,用if來判斷parentid是否匹配。寫完後經師傅檢視,每個市級裡面的縣都是一樣的。

而且迴圈套入迴圈的話,數量巨大,損耗伺服器效能(我只想到了不去迴圈查庫額。。。)

解決問題新思路:

$ii =0;

foreach($xian as $val){

$array_x[$val['parent']][$ii]['xid']=$val['id'];

$array_x[$val['parent']][$ii]['xname']=$val['name'];

$ii++;

$cc =0;

foreach($shi as $val){

$array_s[$val['parent']][$cc]['sid']=$val['id'];

$array_s[$val['parent']][$cc]['sname']=$val['name'];

$array_s[$val['parent']][$cc]['countrylist']=$array_x[$val['id']];

$cc++;

$qq = 0;

foreach($sheng as $val){

$array[$val['id']]['pid']=$val['id'];

$array[$val['id']]['pname']=$val['name'];

$array[$val['id']]['citylist']=$array_s[$val['id']];

說明:1、首先拼裝出縣級,因為每乙個地方的父類id都是唯一的。在皮裝過程中順著師傅的思路,父類id為鍵。子類為值,但

乙個父類id下面有很多的子類id,所以用乙個++變數來區分開

2、拼裝市級,因為縣級的key是市級的id,所以直接用id進行匹配後,把整個符合市級id的陣列放入市內

3、同理拼裝省  這樣就得到了乙個標磚的省市縣

ps:修改陣列考驗乙個人的解決方式的思維邏輯,還要考慮伺服器,資料庫的效能及損耗,和瀏覽器載入速度問題。雖然呼叫介面的人只用一次(會做快取),但是也要考慮全面。

2014-03-13

ajax省市縣聯動

html form id form1 runat server div divid dv table tr td asp dropdownlist id ddlprovince runat server onchange provincechange asp dropdownlist td td s...

js省市縣聯動

select 或text的onchange事件需要手動 通過鍵盤輸入 改變select或text的值才能觸發,如果在js中給select或text賦值,則無法觸發onchang事件,例如,在頁面載入完成以後,需要觸發乙個onchange事件,在js中用document.getelementbyid ...

全國省市縣資料爬蟲

專案需要全國省市縣資料,網上找了一圈發現要麼過時要麼收費,於是花點時間自己寫了個爬蟲爬了些基礎資料,基本上夠用了,資料是從國家統計局爬來的,目前更新到2019年,如下 s.mount http httpadapter max retries 2 重試次數 r s.get url,headers he...