zoukankan      html  css  js  c++  java
  • 省市县,循环组装,整合大数组

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

    $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

  • 相关阅读:
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    动手动脑2
    动手动脑3
    每日日报
    每周总结
    Java学习
  • 原文地址:https://www.cnblogs.com/still-love-you/p/4660393.html
Copyright © 2011-2022 走看看