<?php $dbRows = [ ['day' => '2018-04-09', 'count' => 3], ['day' => '2018-04-08', 'count' => 6], ['day' => '2018-04-07', 'count' => 2], ['day' => '2018-04-05', 'count' => 4], ]; $interval = new \DateInterval('P10D'); $currentDate = new \DateTime; $previousDate = clone $currentDate; $previousDate->sub($interval); /* $query = 'SELECT Date( timestamp ) AS day, Count(id) AS total FROM goals_data WHERE company = 1 AND Date( timestamp ) BETWEEN :previous_date AND :current_date GROUP BY day desc' */ $dbDates = array_column($dbRows, null, 'day'); $period = new \DatePeriod($currentDate, DateInterval::createFromDateString('-1 day'), $interval->d); foreach ($period as $date) { $key = $date->format('Y-m-d'); if (!array_key_exists($key, $dbDates)) { $dbDates[$key] = ['day' => $key, 'count' => 0]; } echo $dbDates[$key]['day'] . ' ----- ' . $dbDates[$key]['count'] . \PHP_EOL; }
You have javascript disabled. You will not be able to edit any code.