作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这起初看起来很简单,但现在却变得令人头疼。
我一年中每个月都会发生多次抢劫,比如说 2016 年。我的查询
SELECT MONTH(denuncia.fecha_registro_denuncia) as mes, count(denuncia.codigo_incidente)
FROM denuncia
INNER JOIN incidentes ON incidentes.codigo_incidente=denuncia.codigo_incidente
WHERE YEAR(denuncia.fecha_registro_denuncia)='".$a."' AND denuncia.codigo_incidente=0
GROUP BY mes
denuncia 与“向警方报告”相同
返回:
+-------+--------+
| month | robber.|
+-------+--------+
| 1 | 2 |
| 2 | 2 |
| 3 | 3 |
| 4 | 2 |
| 5 | 1 |
| 8 | 2 |
| 9 | 3 |
| 10 | 1 |
| 11 | 5 |
| 12 | 2 |
+-------+--------+
查询以 PHP 多维数组的形式获取,使用
while($rows=mysqli_fetch_array($result,MYSQLI_NUM)) {
$b[]=$rows;
}
数组格式的数据:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 2
[1] => 2
)
[2] => Array
(
[0] => 3
[1] => 3
)
[3] => Array
(
[0] => 4
[1] => 2
)
[4] => Array
(
[0] => 5
[1] => 1
)
[5] => Array
(
[0] => 8
[1] => 2
)
[6] => Array
(
[0] => 9
[1] => 3
)
[7] => Array
(
[0] => 10
[1] => 1
)
[8] => Array
(
[0] => 11
[1] => 5
)
[9] => Array
(
[0] => 12
[1] => 2
)
)
如您所见,我的查询结果中缺少第 6 个月和第 7 个月。那几个月没有发生任何事件。当我在 StackOverflow 中搜索时,用零填充查询在某种程度上是一个复杂的 SQL 查询。
所以,我有 PHP 来解决这个问题。我需要将这些数据输出到图表显示库,以便我可以清晰地查看它。输入数据的格式为:
[2,2,3,2,1,0,0,2,3,1,5,2]
因此,我需要在位置 6 和 7 上添加 0,以填补没有发生任何事件的空月份。
问题是,我的编码能力很差。我尝试了一些解决方案,但总是陷入困境,已经几个小时了。
基本上算法是: - 遍历数组 - 检查月份是否存在 -如果不存在,则回显'0,"; - 前往下一个位置 - 再次检查月份是否存在 -...
编码了好几个小时,但我的头脑无法掌握解决方案。感谢您的帮助。
最佳答案
您可以做的一种方法是您可以用零填充月份数组并设置值
$month = array_fill_keys(range(1, 12),0); //fill month array key with month(1-12)
while($rows=mysqli_fetch_array($result,MYSQLI_NUM)) {
$month [$rows[0]]= $rows[1]; //check if exists set value
}
关于PHP : I need to fill "0" on months where there is no data available from a sql query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53312505/
我是一名优秀的程序员,十分优秀!