亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php 代碼優(yōu)化之經(jīng)典示例

 更新時(shí)間:2011年03月24日 23:05:42   作者:  
今天碰到了這么一個(gè)問(wèn)題,處理的數(shù)組$tempArray為如下所示形式(key已經(jīng)排序),然后要根據(jù)這個(gè)結(jié)果進(jìn)行分塊的處理
我用的方法是按key區(qū)分塊,然后在將塊賦給其他的變量,然后再進(jìn)行一些操作,這樣用到了很多的for和foreach,而且代碼量也很大,所以被退回來(lái)了。

經(jīng)過(guò)上面的指導(dǎo),發(fā)現(xiàn)真的好簡(jiǎn)單,現(xiàn)在與大家一同分享。

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

現(xiàn)在有如上所示的結(jié)果

要求:要對(duì)這個(gè)已經(jīng)按key進(jìn)行排序了的數(shù)組進(jìn)行操作,相同key的項(xiàng)進(jìn)行處理。

提示:這個(gè)是很典型的母子表的結(jié)構(gòu),也就是說(shuō)其實(shí)它是兩張表的合并,可以這樣處理成兩個(gè)數(shù)組,方便數(shù)組里面對(duì)塊的操作
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

實(shí)現(xiàn)如上數(shù)組分離代碼

這樣后,訪(fǎng)問(wèn)tempArray的塊數(shù)據(jù)就非常方便了

foreach($tempArray as $row){

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

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

}

訪(fǎng)問(wèn)和處理代碼

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

  $this->doSomeThing($ID);

  //訪(fǎng)問(wèn)tempArray的塊數(shù)組$array2[$Key]

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

}

相關(guān)文章

最新評(píng)論