我有一个代码,可以每小时从数据库生成最近10 小时的帖子总数。现在,问题是只显示有帖子的小时数,但这对我来说不起作用,因为我想将整个内容显示为图表。
当前数组的示例:
array("12"=>"20403",
"15"=>"17017",
"17"=>"84013");
这些键代表 24 格式的小时。所以我需要的是一个用 0 值填充空时间的函数。
示例:
$currenthour=date('H'); // i think it may be based on the latest hour.
array("11"="0",
"12"=>"20403",
"13"=>"0",
"14"=>"0",
"15"=>"17017",
"16"=>"0",
"17"=>"84013",
"18"=>"0",
"19"=>"0",
"20"=>"0");
谢谢!
最佳答案
foreach(range(0, 23) as $hour)
if(!isset($ary[$hour]))
$ary[$hour] = 0;
ksort($ary);
要仅填写最后几个小时,您可能需要类似的内容
function last_hours($hour, $cnt) {
return $hour < $cnt - 1 ?
array_merge(range($hour, 0), range(23, 25 - $cnt + $hour)) :
range($hour, $hour - $cnt + 1);
}
然后
$now = date("G");
$new_array = array();
foreach(last_hours($now, 10) as $hour)
$new_array[$hour] = isset($ary[$hour]) ? $ary[$hour] : 0;
关于php - 填充数组中缺失的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4423408/