zoukankan      html  css  js  c++  java
  • php 代码优化之经典事例

    今天碰到了这么一个问题,处理的数组$tempArray为如下所示形式(key已经排序),然后要根据这个结果进行分块的处理,我用的方法是按key区分块,然后在将块赋给其他的变量,然后再进行一些操作,这样用到了很多的for和foreach,而且代码量也很大,所以被退回来了。

    经过上面的指导,发现真的好简单,现在与大家一同分享。

    ID
    FIELD1
    FIELD2 FIELD3 FIELD4 Key
    1
    *** *** *** *** meat1
    2
    *** *** *** *** meat1
    3
    *** *** *** *** meat1
    4 *** *** *** *** meat1
    5
    *** *** *** *** fruit2
    6 *** *** *** *** fruit2
    7
    *** *** *** *** fruit2
    8
    *** *** *** *** fruit2
    9
    *** *** *** *** fruit2
    10
    *** *** *** *** food3
    11
    *** *** *** *** food3

    现在有如上所示的结果

    要求:要对这个已经按key进行排序了的数组进行操作,相同key的项进行处理。

    提示:这个是很典型的母子表的结构,也就是说其实它是两张表的合并,可以这样处理成两个数组,方便数组里面对块的操作
    array1:ID|Key

    ID
    Key
    1
    meat1
    2
    meat1
    3
    meat1
    4 meat1
    5
    fruit2
    6 fruit2
    7
    fruit2
    8
    fruit2
    9
    fruit2
    10
    food3
    11
    food3

    array2:key => array(ID,FIELD1,FIELD2,FIELD3,FIELD4,FIELD5,Key)


    ID
    FIELD1
    FIELD2 FIELD3 FIELD4 Key
    meat1=>
    1
    *** *** *** *** meat1
    2
    *** *** *** *** meat1
    3
    *** *** *** *** meat1
    4 *** *** *** *** meat1
    fruit2=> 5
    *** *** *** *** fruit2
    6 *** *** *** *** fruit2
    7
    *** *** *** *** fruit2
    8
    *** *** *** *** fruit2
    9
    *** *** *** *** fruit2
    food3=> 10
    *** *** *** *** food3
    11
    *** *** *** *** food3

    实现如上数组分离代码

    这样后,访问tempArray的块数据就非常方便了

    foreach($tempArray as $row){

      array1[$row['ID']] = $row['Key'];

      array2[$row['Key']][] = $row;

    }

    访问和处理代码

    foreach($array1 as $ID => $Key){

      $this->doSomeThing($ID);

      //访问tempArray的块数组$array2[$Key]

      $this->doSomeThing2($array2[$Key]);

    }

  • 相关阅读:
    SQL_TRACE与tkprof分析
    mysql学习之-三种安装方式与版本介绍
    1400
    输出二叉树中所有从根结点到叶子结点的路径
    [置顶] 处世悬镜之舍之
    Azkaban2配置过程
    [置顶] 处世悬镜之舍之 二
    UVALIVE 5893 计算几何+搜索
    Paxos算法 Paxos Made Simple
    Spring AOP 详解
  • 原文地址:https://www.cnblogs.com/zcy_soft/p/1994279.html
Copyright © 2011-2022 走看看