网络编程 
首页 > 网络编程 > 浏览文章

php 代码优化之经典示例

(编辑:jimmy 日期: 2024/11/20 浏览:3 次 )
我用的方法是按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]);

}

上一篇:优化php效率,提高php性能的一些方法
下一篇:php模拟asp中的XmlHttpRequest实现http请求的代码