1

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

想象一下数据库中的这张表(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], [23.07.2013 10:32:31,3]。有什么想法可以帮助我吗?

4

1 回答 1

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 等)修改以下代码

于 2013-09-15T18:19:50.317 回答