0

我理解basic arrays,但是当他们变得更先进时,我会有点迷茫。有人可以帮助我使用以下代码array吗?

我将我的存储DB query到一个array. 如果所有 12 个月都不在数据库中,那么这就是存储的全部内容(应该如此)。但是,我的问题是我需要array拥有全部 12 个keys,这样我才能打印出来。

// Example amounts

0, 0, 0, 0, 5.23, 0, 0, 158.35, 0, 0, 0, 0

基本上,如果它不存在,我应该仍然能够在那个月打印出零。

这是我的代码:

$closedsales = mysqli_query($mysqli, "SELECT MONTH(date) as month, sum(amount) as total FROM sales WHERE user_id = '".$userid."' AND status = 'S' GROUP BY MONTH(date)");

    while ( $row = mysqli_fetch_assoc($closedsales) ) {
    $monthlysales[$row['month']] = $row['total'];
    }

       foreach($monthlysales as $key => $amount) {
         echo "$amount <br />";
       }
4

2 回答 2

2

预填充结果数组:

$monthlysales = array_fill_keys(range(1, 12), 0);

然后运行你的循环,它将用表中的行替换元素。如果表中缺少一行,它将具有初始值 0。

于 2013-07-05T17:59:23.677 回答
1
$allmonthlysales = array_fill_keys(range(1, 12), 0);
foreach($monthlysales as $month => $sales){
    $allmonthlysales[$month] = $sales;
}
var_dump($allmonthlysales);
  • 准备和带array钥匙1-12,意味着几个月没有销售。0value
  • array将有销售的月份与上面构建的空月份合并。
  • 你得到了你需要的...
于 2013-07-05T17:55:59.017 回答