博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
省市县,循环组装,整合大数组
阅读量:5318 次
发布时间:2019-06-14

本文共 1566 字,大约阅读时间需要 5 分钟。

今天在公司提供一个省市县接口,原码为-->

$ii=0;

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

        $result[$ii]['pId']=$cval['id'];

        $result[$ii]['pName']=$cval['name'];

        $jj=0;

        foreach($shi as $skey=>$sval){

            if($cval['id']==$sval['parent']){

                $result[$ii]['cityList'][$jj]['cityId']=$sval['id'];

                $result[$ii]['cityList'][$jj]['cityName']=$sval['name'];

            }

            $cc=0;

            foreach($xian as $xkey=>$xval){

                if($sval['id']==$xval['parent']){

                    $result[$ii]['cityList'][$jj]['countryList'][$cc]['countryId']=$xval['id'];

                    $result[$ii]['cityList'][$jj]['countryList'][$cc]['countryName']=$xval['name'];

                }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

转载于:https://www.cnblogs.com/still-love-you/p/4660393.html

你可能感兴趣的文章
织梦MIP文章内容页图片适配百度MIP规范
查看>>
学习AS3菜鸟起飞吧之—函数(二):函数之返回语句
查看>>
第13课 - 自动生成依赖关系(下)
查看>>
POJ No.2386【B007】
查看>>
点击复制插件clipboard.js
查看>>
mysql优化
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
Oracle命令--创建表空间、创建临时表空间、创建用户
查看>>
poj2187 Beauty Contest
查看>>
cf 472G Design Tutorial: Increase the Constraints 分块+压位/FFT
查看>>
iOS开发之使用XMPPFramework实现即时通信(一)
查看>>
CentOS 6.5(x86_32)下安装Oracle 10g R2
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
[Tex学习笔记]尝试数学公式
查看>>
省市县,循环组装,整合大数组
查看>>