3v4l.org

run code in 300+ PHP versions simultaneously
<?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; }
Output for 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.4 - 7.4.5, 7.4.7 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
2018-04-11 ----- 0 2018-04-10 ----- 0 2018-04-09 ----- 3 2018-04-08 ----- 6 2018-04-07 ----- 2 2018-04-06 ----- 0 2018-04-05 ----- 4 2018-04-04 ----- 0 2018-04-03 ----- 0 2018-04-02 ----- 0 2018-04-01 ----- 0
Output for 7.4.6
2020-05-17 ----- 0 2020-05-16 ----- 0 2020-05-15 ----- 0 2020-05-14 ----- 0 2020-05-13 ----- 0 2020-05-12 ----- 0 2020-05-11 ----- 0 2020-05-10 ----- 0 2020-05-09 ----- 0 2020-05-08 ----- 0 2020-05-07 ----- 0
Output for 7.4.0
2019-11-30 ----- 0 2019-11-29 ----- 0 2019-11-28 ----- 0 2019-11-27 ----- 0 2019-11-26 ----- 0 2019-11-25 ----- 0 2019-11-24 ----- 0 2019-11-23 ----- 0 2019-11-22 ----- 0 2019-11-21 ----- 0 2019-11-20 ----- 0

preferences:
141.45 ms | 409 KiB | 5 Q