重複の可能性:
PHPを使用して過去30日間の配列を作成する
今日と6日前の「過去7日間の売り上げ」でアレイを作成しようとしています。私はこれまでこれを使用しています:
$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
これにより、キーが日付で、値がその日付の売上高である配列が得られます。すなわち:
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 )
このように、MySQLクエリに日付が表示されていなくても、過去7日間の毎日が配列に含まれます。
これを行う方法について何か提案はありますか?