【发布时间】:2014-03-23 22:54:07
【问题描述】:
您好,我有一个结构如下的表
+-------------+------+
| date | price|
+-------------+------+
| 2014-02-19 | 34 |
| 2014-02-20 | 30 |
| 2014-02-21 | 28 |
+-------------+------+
目前 PDO::FETCH_ASSOC 返回一个关联数组,格式如下
array(
0=> array(
"date" => 2014-02-19 ,
"price" => 34
),
1=> array(
"date" => 2014-02-20 ,
"price" => 30
),
2=> array(
"date" => 2014-02-21 ,
"price"=> 28
)
)
顺便说一句,这没问题,但我一直在寻找一种方法将值作为键 => 值对返回,键是日期,值是价格。这样我就可以使用日期作为键快速访问价格值,从而大大减少计算量,因为我必须处理数百万行,并且在循环中访问每个值只会导致程序进一步减速。
这就是我想要返回的 PDO::fetchALL()
array(
"2014-02-19" => 34,
"2014-02-20" => 30,
"2014-02-21" => 28
)
我的意思是我可以使用 foreach 循环轻松构建它,但在我的情况下这是不可能的,因为它会导致性能大幅下降。因此,如果有人能指出我正确的方向,那将非常有帮助。我将不胜感激任何形式的帮助或提示。
谢谢, 马克斯
【问题讨论】:
-
你总是可以用 while 代替 foreach
-
当然可以,但是它会降低我目前使用 foreach() 获得的性能损失吗?
-
取决于您想象的性能。
-
程序中已经有 4 个外部循环,这个数组计算发生在最里面的循环中
-
那又怎样?您在此处看到的某些“性能影响”是什么?