与php的关联数组

时间:2013-09-15 18:18:21

标签: php arrays database associative

我需要创建一个关联数组:日期和该日期的事件数。

想象一下数据库中的这个表(XPTO):

timestamp            id  parameter  sensor_id
2013-09-10 12:43:54   1   34           3
2013-07-23 10:32:31   2   54          65
2013-07-23 10:32:31   3   23          45
2013-07-23 10:32:31   4   12          1
2013-09-10 12:43:54   5   1           43

现在,我想要的结果如下: [09.10.2013 12:43:54,2],[2013年7月23日10:32:31,3]。 有什么想法帮助我吗?

1 个答案:

答案 0 :(得分:1)

SQL可以解决问题。

$myarray = array();
$result = mysql_query("SELECT timestamp, count(id) FROM xpto GROUP BY timestamp");
while ($row = mysql_fetch_array($result))
    $myarray[$row[0]]=$row[1];

如果您想要完整信息而不是计算:

$myarray = array();
$result = mysql_query("SELECT * FROM xpto ORDER BY timestamp");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $timestamp=$row['timestamp'];
    unset($row['timestamp']);
    $myarray[$timestamp][]=$row;
}

现在你有了这个数组:

[2013-07-23 10:32:31] => array (
                          array (
                              'id'=>2,
                              'parameter'=>54,
                              'sensor_id'=>65,
                          ),
                          array (
                              'id'=>3,
                              'parameter'=>23,
                              'sensor_id'=>45,
                          ),
...

请根据您的数据库连接类型(PDO等)修改以下代码