我想在$ month变量中检查一年中的月份,如果找到的数据显示月份(数量),如果找不到则显示' 0'
<?php
$month = array(
'2',
'3',
'4',
'7',
'12'
);
for ($i = 1; $i <= 12; $i++) {
foreach($month as $key => $value) {
if ($value == $i) {
echo "$i" . "\n";
}
else {
echo "0" . "\n";
}
}
}
从上面的代码我得到
0
0
0
0
0
2
0
0
0
0
0
3
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
如果我在其他地方添加break 1
for ($i = 1; $i <= 12; $i++) {
foreach($month as $key => $value) {
if ($value == $i) {
echo "$i" . "\n";
}
else {
echo "0" . "\n";
}
break 1;
}
}
我得到了12个结果但不是我的预期。
0
2
0
0
0
0
0
0
0
0
0
0
我想要的是
0
2
3
4
0
0
7
0
0
0
0
12
如果我能够获得该结果,我想使用chartjs将这些结果放在图形中,我知道如何做到这一点。我只想知道如何获得这些结果,任何帮助appriciate
答案 0 :(得分:5)
for ($i = 1; $i <= 12; $i++) {
if(in_array($i, $month)){
echo "$i" . "\n";
}else {
echo "0" . "\n";
}
}
答案 1 :(得分:0)
您希望每个外循环只打印一次,而不是每个内循环打印一次。你想要更像的东西:
//When any link on the page is clicked
document.body.onclick = function(e){
e = e || event;
var from = findParent('a',e.target || e.srcElement);
if (from){
//check if pageLoading--finished ran then make an AJAX request
console.log(__reactContent['url']);
}
}
//find first parent with tagName [tagname]
function findParent(tagname,el){
if ((el.nodeName || el.tagName).toLowerCase()===tagname.toLowerCase()){
return el;
}
while (el = el.parentNode){
if ((el.nodeName || el.tagName).toLowerCase()===tagname.toLowerCase()){
return el;
}
}
return null;
}
但是,您可以使用内置函数来更有效地执行此操作。请参阅in_array功能。