我正在寻找一种方法,通过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