0

我有几个月的数据库。我正在使用以下内容对类似月份进行分组:

$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 />";
         }
      }
    }

现在,当只有 Jan 时,这可以正常工作。现在我又增加了一个月,我的结果显示如下:

一月(3) 一月(3) 二月(1) 二月(1) 三月 三月 等等.....等等......

我怎样才能让它像这样只显示一次:

一月(3)二月(1)三月等......

现在我注意到,添加的月份越多,重复的次数就越多。有人可以看看这个并告诉我我哪里出错了吗?

4

1 回答 1

2

看来,$Mydates已经按月汇总和访问。删除内部循环并查看是否有相应的月份$Mydates

foreach($months as $month) {
    if(isset($Mydates[$month])) {
        echo $month." (".$Mydates[$month].")<br />";
    } else {
        echo $month."<br />";
    }
}
于 2013-04-11T22:50:05.683 回答