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