我有一个来自这个 mysql 查询的数组:
SELECT COUNT(*) as opens, HOUR(FROM_UNIXTIME(open_date)) as hour
FROM tracking WHERE open_id = 10 GROUP BY HOUR(FROM_UNIXTIME(open_date))
它让我可以根据每小时获得打开。但是,由于在特定时间没有打开任何东西,因此时间存在一些差距。我怎样才能填补空白,即转动这个数组:
Array (
[0] => Array ( [opens] => 9 [hour] => 0 )
[1] => Array ( [opens] => 2 [hour] => 3 ) )
进入:
Array (
[0] => Array ( [opens] => 9 [hour] => 0 )
[1] => Array ( [opens] => 0 [hour] => 1 )
[2] => Array ( [opens] => 0 [hour] => 2 )
[3] => Array ( [opens] => 2 [hour] => 3 ) )
换句话说,用 0 个打开来填补缺失的时间?我可以更改我的 sql 查询以使其正常工作还是必须通过 PHP?
感谢大家的帮助。
最佳答案
$aHours = array();
foreach (range(0,23) as $nHour){
$aHours[] = array('opens' => 0, 'hour' => $nHour);
}
// your query goes here with result into $aMyQueryResult
foreach ($aMyQueryResult as $aOpensHour){
$aHours[$aOpensHour['hour']] = $aOpensHour;
}
关于php - 填补多维数组中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4639991/