我正在尋找一種方法,通過SQL或PHP來返回SQL語句中的許多列,但能夠一次一個列地遍歷它們。從一條SQL語句中獲取一列中的所有行
我有一個查詢這使我如:
ID | N1 | N2
1 | 15 | 20
2 | 25 | 30
3 | 35 | 40
我知道我可以用foreach $result as $row
經歷,並在循環使用$row['T1']
,但我正在尋找一種方式來把所有$row['T1']
成一個數組,而不必迭代它們。我無法找到如何做到這一點。
我需要這將被組織爲陣列(或一組陣列):
myArray = array('N1' => array('15', '25', '35'),
'N2' => array('20', '30', '40')
);
,這樣我可以使用像array_sum()
和array_slice()
標準陣列功能訪問它們。
有沒有一種方法,使用MySQL,PHP(PDO),以簡單和編程方式爲大量字段做到這一點?
我的SQL使用複雜的連接來獲得許多字段,這些字段需要被平均並打印到文本文件。他們希望將這些字段組合在一起,而不是將所有字段放在標準表中。
N1:
15
25
35
N2:
20
30
40
因此需要正確設置陣列。
因此:我可以使用哪種方法來做到這一點?我知道我可以迭代整個$result
,並將$row['index']
推入我自己的幾個陣列中,但肯定有更好的方法來做到這一點?通過複雜的連接,對每個字段分別進行單獨查詢會更快嗎?
這是不是產生:'$ myArray的=陣列(15,25,35,20,30,40)'或類似,只是附加的結果,而不是分隔條件? – StuckAtWork 2013-04-10 17:08:38
好吧,你確實說過「一次一列」。所以這是一種方式。但重新閱讀剩下的內容,我會看到你在看什麼。 – 2013-04-10 17:14:05
這就是我到目前爲止,基本上轉置陣列。看起來好像沒有任何內容來自PHP或SQL,它允許查詢的輸出。表現看起來不錯。我可以用'array_map'獲得更好的性能,但是我失去了'$ col'索引(因爲它是關聯的,而不是數字索引的) – StuckAtWork 2013-04-11 12:12:54