php - 填充数组中缺失的元素

标签 php arrays date time

我有一个代码,可以每小时从数据库生成最近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/

相关文章:

java - 如何使用 PHP 到 Java 的 JSON 数据发出 POST 请求?

php - 使用php从文本中提取单词

php - OnmouseOver Jquery/Javascript调用外部函数

javascript - Jquery比较并返回字符串数组

python - 从 Numpy 中的 N 个向量中找到所有唯一的(几乎)平行 3d 向量对的最快方法

excel - 如何使用 Vba 获取当前年份

php - 使用 php 处理程序 dso 时的 Easyapache 4 问题

python - 在 python 中交换列表元素,其中表达式包含函数调用

c++ - Windows时区写入注册表是否可靠?

java - 将 json 日期解析为特定日期格式