计数然后更新数组


Counting and then updating array

>我有一个带有日期字段的数据库,我想计算唯一年份的数量,然后计算每年的条目数。这是我所拥有的:

while ($row = mysql_fetch_array($sql_result)) 
{
     $Date = $row["Date"];
     //DETERMINE YEARS
     $Year = substr("$Date",0,4);
     if (!in_array($Year, $allDates)){
          $allDates[] = $Year;;
     }

}

因此,这给我留下了一个包含所有独特年份的数组。

Array ( [0] => 2010 [1] => 2008 [2] => 2009 [3] => 2006 [4] => 2007 [5] => 2012 [6] => 2011 [7] => 2013 )

现在,如何再次遍历所有条目并汇总该特定年份的记录数?

提前致谢

您可以在同一

迭代中维护每年的计数,而不是再次循环。

我同意巴拉特的观点

尝试这样的事情:

while ($row = mysql_fetch_array($sql_result)) 
{
     $Date = $row["Date"];
     //DETERMINE YEARS
     $Year = substr("$Date",0,4);
     if (!array_key_exists($Year, $allDates)){
          $allDates[$Year] = $allDates[$Year]+1;
     }else{
          $allDates[$Year] = 1;
     }
}
我想

补充一下@Bharat和@Odward的答案,php中有一个名为array_count_values()的函数。您可以在 PHP 文档中阅读它:
http://www.php.net/manual/en/function.array-count-values.php您可以使用此功能:

$result = array_count_values($Year);
print_r($result);

输出应该是这样的:

Array
(
    [2012] => 2
    [2009] => 4
    [2010] => 3
)

我希望这对我的英语有所帮助并原谅。