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我已经做过了,而且在大多数情况下,这部分工作正常。我的问题是,当我试图匹配月份列表时,它会不断重复结果。