【发布时间】:2014-08-08 17:26:49
【问题描述】:
有这样的功能吗?
例如,如果我有一个这样的数组:
array(
2014-08-05 10:23:34,
2014-08-08 13:12:56,
2014-08-07 08:02:21,
2014-08-06 11:22:33,
2014-08-03 6:02:44,
2014-08-08 10:23:34
);
我想返回 2014-08-03 和 2014-08-06 之间的所有日期。
这些数组中的数据量巨大,甚至可能有数万条数据。我实际上是从数据库中获取所有内容,我想根据访问者选择的时间范围按日期划分数据(如 2 小时、1 天、3 天等)。
如何在不进行大量查询或大量 PHP 函数的情况下做到这一点?
编辑:
根据要求,我将展示图表插件的数据结构(这些值只是简单的示例):
{x: '2014-08-05 10:23:34', y: 3, data1: 3, data2: 320, data3: 76},
{x: '2014-08-05 10:23:34', y: 2, data1: 1, data2: 300, data3: 27},
{x: '2014-08-05 10:23:34', y: 2, data1: 4, data2: 653, data3: 33},
{x: '2014-08-05 10:23:34', y: 3, data1: 3, data2: 120, data3: 54}
【问题讨论】:
-
我仍然会使用查询 - 我想性能会好得多,而不是将所有数据读入一个数组,然后过滤它。这不可能吗?
-
基本上我在这里使用图表。我通过选择 2 个日期为访问者提供了在他们的报告中回顾的功能,而不是我想在这些日期之间在图表中绘制一些数据。当然,当他们只选择 1 天时,我希望他们看到当天更详细的报告,否则让他们更广泛地查看图表。这将需要大量查询来确定它是否只是 1 天,而不是对每 2 小时的值求和等等。
-
所以您的数据库中获得了所有需要的数据?为什么不创建符合您要求的查询?其他一切都会很慢(如果您有很多用户和数据) - 您可以轻松地在 MySQL 中使用 BETWEEN 运算符。
-
是的,但您知道我必须决定是一周还是一年,还是一周 1 天或 5 天,然后根据该标准获取所有数据。这似乎是一个很长的查询。没有其他可能的解决方案可以从数据库中获取图表数据吗?
-
向我们展示图表插件的数据结构。
标签: php mysql arrays date datetime