可能重复:
使用 PHP 创建最近 30 天的数组
我正在尝试创建一个具有“最近 7 天销售”的数组,即今天加上前 6 天。到目前为止,我正在使用它:
$rightnow = time();
$time_window = $rightnow - (60*60*24*6); // 6 days ago + today = 7 days
$tw_time = date('M d', $time_window);
$tw_time = strtotime($tw_time); // 6 days ago starting at 00:00:00
$valid_sales = mysql_query("SELECT amt, created FROM sales WHERE created > $tw_time");
$sale_data = array();
foreach ($valid_sales as $sale) {
$display_date = date('M d', $sale['created']);
if (array_key_exists($display_date,$sale_data)) { // If date is in array
$sale_data[$display_date] = $sale_data[$display_date] + $sale['amt']; // Add amount to date's sales
} else { // If date is not in array
$sale_data[$display_date] = $sale['amt']; // Create key with this amount
}
} // End foreach valid_sales
这将给我一个数组,其中键是日期,值是该日期的销售额。IE:
Array ( [Jun 19] => 19.00 [Jun 20] => 52.50 [Jun 22] => 2.00 )
我遇到的问题是,即使那天没有销售,我也需要将每一天添加到数组中(使用 MySQL 查询没有找到结果)。所以,我想得到一个这样的数组:
Array ( [Jun 19] => 19.00 [Jun 20] => 52.50 [Jun 21] => 0.00 [Jun 22] => 2.00 [Jun 23] => 0.00 [Jun 24] => 0.00 [Jun 25] => 0.00 )
这样,过去 7 天的每一天都在数组中,即使日期没有出现在 MySQL 查询中。
关于如何做到这一点的任何建议?