Php 找到匹配项时,我的循环将加倍结果
我有一个数据库,有几个月的时间。我使用以下方法对类似月份进行分组:Php 找到匹配项时,我的循环将加倍结果,php,loops,Php,Loops,我有一个数据库,有几个月的时间。我使用以下方法对类似月份进行分组: $Mydates = array(); while(........) { $date = $row['date']; $Mydates[$date] = (isset($Mydates[$date])) ? $Mydates[$date] + 1: 1; } 我的表包含4个数据,1月3日和2月1日。现在,这些信息通过一个包含一年中月份的数组运行。以下是我到目前为止的情况: $months = array
$Mydates = array();
while(........)
{
$date = $row['date'];
$Mydates[$date] = (isset($Mydates[$date])) ? $Mydates[$date] + 1: 1;
}
我的表包含4个数据,1月3日和2月1日。现在,这些信息通过一个包含一年中月份的数组运行。以下是我到目前为止的情况:
$months = array("Jan","Feb","Mar",etc........);
foreach($months as $month)
{
foreach($Mydates as $Mydate => $Number)
{
if($month == $Mydate)
{
echo $month." (".$Number.")<br />";
}else{
echo $month."<br />";
}
}
}
$months=数组(“一月”、“二月”、“三月”等……);
foreach(月份为$month)
{
foreach($Mydates为$Mydate=>$Number)
{
如果($month==$Mydate)
{
echo$month.(“$Number.”)
;
}否则{
echo$month.“
”;
}
}
}
现在,当只有简的时候,这很好。现在我又添加了一个月,结果如下所示:
一月(3日)
一月(3日)
二月一日
二月一日
破坏
破坏
等
等等
我如何才能使其仅显示一次,如下所示:
一月(3日)
二月一日
破坏
等等
现在我注意到,添加的月份越多,重复的次数就越多。有人能看看这个,告诉我哪里出了问题吗?看来,
$Mydates
已经按月份汇总和访问了。删除内部循环,只需查看,$Mydates
foreach($months as $month) {
if(isset($Mydates[$month])) {
echo $month." (".$Mydates[$month].")<br />";
} else {
echo $month."<br />";
}
}
foreach($month作为$month){
如果(isset($Mydates[$month])){
echo$month.“(“$Mydates[$month]”)中的“
”;
}否则{
echo$month.“
”;
}
}
这是因为您的foreachloop。在找到正确的匹配项后,您需要打破它。您想对整个月的所有数字求和吗?我同意Daryl的观点,不过如果有更多的信息就好了。用计数和分组方式编写SQL查询不是更有意义吗?类似于?@MikePurcell我已经做过了,而且在大多数情况下,这部分工作正常。我的问题是,当我试图匹配月份列表时,它会不断重复结果。