计数然后更新数组

时间:2013-09-18 13:05:13

标签: php dynamic-arrays

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

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 )

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

提前致谢

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我同意Bharat

尝试类似的东西:

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;
     }
}

答案 2 :(得分: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
)

我希望这有助于我的英语。