【发布时间】:2013-03-21 08:44:53
【问题描述】:
我有一个数组,例如
//$ary, $ary contains some 80 entries, I'm showing only the first 10
Array
(
[0] => Array
(
[December 2012] => 58
)
[1] => Array
(
[November 2012] => 84
)
[2] => Array
(
[December 2012] => 83
)
[3] => Array
(
[November 2012] => 72
)
[4] => Array
(
[November 2012] => 47
)
[5] => Array
(
[December 2012] => 93
)
[6] => Array
(
[November 2012] => 79
)
[7] => Array
(
[October 2012] => 70
)
[8] => Array
(
[November 2012] => 75
)
[9] => Array
(
[October 2012] => 59
)
[10] => Array
(
[December 2012] => 67
)
)
我可以使用以下方法获得每个月的总数:
foreach($ary as $array)
{
foreach($array as $month=>$cent)
{
if(isset($abc[$month])) // prevent index warning
{
$abc[$month] += $cent;
// tried using $abc[$month] = $abc[$month]/2 but wrong values were returned
}
else
{
$abc[$month] = $cent;
}
}
}
这导致
Array
(
[December 2012] => 2195
[November 2012] => 2159
[October 2012] => 1631
)
但我无法找到每个月的平均值。在我的例子中,December 2012 有 31 个实例,November 2012 有 31 个实例,October 2012 有 25 个实例。因此,我需要掌握这些 31、31 和 25 值,以便我可以将一个月除以该数字。
我认为必须在if(isset($abc[$month])) 循环内完成一些操作才能捕获,但到目前为止还没有成功。有没有其他方法可以得到平均值?
PS:我无法硬编码月份名称(10 月、11 月、12 月)以进行比较。它们会定期更改。
【问题讨论】:
标签: php arrays associative-array average