0

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

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 )

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

提前致谢

4

3 回答 3

0

您可以在同一迭代中保持每年的计数,而不是再次循环。

于 2013-09-18T13:09:13.183 回答
0

我同意巴拉特

尝试这样的事情:

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;
     }
}
于 2013-09-18T13:13:50.793 回答
0

我想补充@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
)

我希望这有助于并原谅我的英语。

于 2013-09-18T13:37:41.280 回答