【发布时间】:2011-02-16 17:35:52
【问题描述】:
我有一个包含以下内容的数据库表:
id user_id plant_id date value
68 68 109 2011, 04, 02 300
67 68 109 2011, 02, 16 300
66 68 109 2011, 06, 11 120
65 68 109 2011, 02, 04 120
64 68 109 2010, 12, 19 55
63 68 109 2011, 01, 22 456
62 68 108 2011, 01, 22 888
61 68 108 2011, 01, 15 123
我需要为 user_id 68 创建一个数组,该数组以 plant_id 为键,如下所示:
Array
(
[109] => Array
(
[2011, 04, 02] => 300
[2011, 02, 16] => 300
[2011, 06, 11] => 120
[2011, 02, 04] => 120
[2010, 12, 19] => 55
[2011, 01, 22] => 456
)
[108] => Array
(
[2011, 01, 22] => 888
[2011, 01, 15] => 123
)
)
不幸的是,我用下面的代码搞砸了:
$result = mysql_query("SELECT * FROM data WHERE user_id='$user_id'");
$value_array = array();
while ($row = mysql_fetch_array($result)) {
$value_array[$row['date']] = $row['value'];
}
$result = mysql_query("SELECT * FROM data WHERE user_id='$user_id'");
$plant_array = array();
while ($row = mysql_fetch_array($result)) {
$plant_array[$row['plant_id']] = $value_array;
}
这为每个植物 ID 提供了相同的数组:
Array
(
[109] => Array
(
[2011, 04, 02] => 300
[2011, 02, 16] => 300
[2011, 06, 11] => 120
[2011, 02, 04] => 120
[2010, 12, 19] => 55
[2011, 01, 22] => 888 // skips value '456' because of repeated date?
[2011, 01, 15] => 123
)
[108] => Array
(
[2011, 04, 02] => 300
[2011, 02, 16] => 300
[2011, 06, 11] => 120
[2011, 02, 04] => 120
[2010, 12, 19] => 55
[2011, 01, 22] => 888 // skips value '456' because of repeated date?
[2011, 01, 15] => 123
)
)
如何创建以植物 ID 为键的数组循环,仅包含来自该特定植物 ID 的数据?
非常感谢任何帮助!
【问题讨论】:
-
也许:
$value_array[] = array($row['date'], $row['value']);