当前位置:首页 > PHP教程 > PHP高级教程

php 代码优化之经典示例

我用的方法是按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]);

}

if ($ != jquery) { $ = jquery.noconflict(); } var islogined = false; var cb_blogid = 72706; var cb_entryid = 1994279; var cb_blogapp = "zcy_soft"; var cb_bloguserguid = "c4d4393c-4c87-df11-ba8f-001cf0cd104b"; var cb_entrycreateddate = '2011/3/24 20:21:00';
【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!