Php 需要数组包含循环中12个月的所有12个键,即使找不到月
我理解Php 需要数组包含循环中12个月的所有12个键,即使找不到月,php,arrays,foreach,mysqli,Php,Arrays,Foreach,Mysqli,我理解基本数组,但当它们变得更高级时,我就有点不知所措了。有人能帮我写下面的代码和数组吗 我正在将我的DB查询存储到数组中。如果所有12个月都不在数据库中,那么这就是存储的全部内容(应该如此)。但是,我的问题是我需要数组包含所有12个键,以便打印出来 // Example amounts 0, 0, 0, 0, 5.23, 0, 0, 158.35, 0, 0, 0, 0 基本上,如果它不存在,我应该仍然能够打印出该月的零 这是我的密码: $closedsales = mysqli_quer
基本数组
,但当它们变得更高级时,我就有点不知所措了。有人能帮我写下面的代码和数组吗
我正在将我的DB查询
存储到数组中
。如果所有12个月都不在数据库中,那么这就是存储的全部内容(应该如此)。但是,我的问题是我需要数组
包含所有12个键
,以便打印出来
// 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 />";
}
$closedsales=mysqli_query($mysqli,“选择月(日期)作为月,选择sum(金额)作为销售总额,其中user_id=”,“$userid.”和status='S'按月分组(日期)”);
而($row=mysqli\u fetch\u assoc($closedsales)){
$monthlysales[$row['month']]=$row['total'];
}
foreach($key=>$amount的月销售额){
回显“$amount
”;
}
- 准备并
,按键array
和1-12
为0
表示没有销售的月份value
- 将
与具有销售额的月份合并到上面构建的空月份数组
- 你得到了你需要的
- 准备并
,按键array
和1-12
为0
表示没有销售的月份value
- 将
与具有销售额的月份合并到上面构建的空月份数组
- 你得到了你需要的
$monthlysales = array_fill_keys(range(1, 12), 0);
然后运行循环,它将用表中的行替换元素。如果表中缺少一行,则该行的初始值为0。预先填充结果数组:
$monthlysales = array_fill_keys(range(1, 12), 0);
然后运行循环,它将用表中的行替换元素。如果表中缺少一行,则该行的初始值为0。当数组有数字键时,
array\u merge
将它们串联在一起,它不会合并相似的键。当数组有数字键时,array\u merge
将它们串联在一起,它不会合并相似的键。^对于您的具体情况,这里的解决方案更简单。非常好,谢谢我会记住这个函数!!再次感谢你一直以来的帮助!!^更容易解决您的具体情况。非常好,谢谢!我会记住这个函数!!再次感谢你一直以来的帮助!!