liuyuehua 发表于 2015-8-27 09:19:28

php 代码优化之经典事例

  今天碰到了这么一个问题,处理的数组$tempArray为如下所示形式(key已经排序),然后要根据这个结果进行分块的处理,我用的方法是按key区分块,然后在将块赋给其他的变量,然后再进行一些操作,这样用到了很多的for和foreach,而且代码量也很大,所以被退回来了。
  经过上面的指导,发现真的好简单,现在与大家一同分享。
ID
FIELD1
FIELD2FIELD3FIELD4Key
1
************meat1
2
************meat13
************meat14************meat15
************fruit26************fruit27
************fruit28
************fruit29
************fruit210
************food311
************food3  现在有如上所示的结果
  要求:要对这个已经按key进行排序了的数组进行操作,相同key的项进行处理。
  提示:这个是很典型的母子表的结构,也就是说其实它是两张表的合并,可以这样处理成两个数组,方便数组里面对块的操作
array1:ID|Key
ID
Key
1
meat1
2
meat13
meat14meat15
fruit26fruit27
fruit28
fruit29
fruit210
food311
food3  array2:key => array(ID,FIELD1,FIELD2,FIELD3,FIELD4,FIELD5,Key)

ID
FIELD1
FIELD2FIELD3FIELD4Key
meat1=>
1
************meat1
2
************meat13
************meat14************meat1fruit2=>5
************fruit26************fruit27
************fruit28
************fruit29
************fruit2food3=>10
************food311
************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]);
  }
页: [1]
查看完整版本: php 代码优化之经典事例