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