我理解basic arrays
,但当它们变得更高级时,我会有点迷路。有人能帮我处理以下代码和array
吗?
我正在将我的DB query
存储到array
中。如果所有12个月都不在DB中,那么这就是存储的全部内容(应该如此)。然而,我的问题是,我需要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 />";
}
预填充结果数组:
$monthlysales = array_fill_keys(range(1, 12), 0);
然后运行循环,循环将用表中的行替换元素。如果表中缺少一行,则该行的初始值为0。
$allmonthlysales = array_fill_keys(range(1, 12), 0);
foreach($monthlysales as $month => $sales){
$allmonthlysales[$month] = $sales;
}
var_dump($allmonthlysales);
- Prepare and
array
with keys1-12
and0
asvalue
means months without sales - 将具有销售额的月份的
array
与上面构建的空月份合并 - 你得到了你需要的