Php数组循环并计算平均值

时间:2014-02-04 09:17:27

标签: php

我想基于key计算数组的所有值的平均值。 我有一个像这样的数组

$res_arr = 
array 
{
array[0]=>array
{
    [0] => 3
            [1] => 7
            [2] => 9
            [3] =>3
            [4] => 22
}
array[1]=>array
{
    [0] => 5
            [1] => 5
            [2] => 8
            [3] => 9
            [4] => 0
}
array[2]=>array
{
    [0] => 10
            [1] => 5
            [2] => 8
            [3] => 7
            [4] => 3
}
....
....
....
....
array[100]
}

每个数组中共有5个元素

它应该返回一个平均值为

的数组
$av_array = ();
$array  = array(6,5.6,8.3,6.3,8.3)

以下是我使用的循环

foreach($res_arr as $m=>$val)
{
    //echo $val[0];
    $return[$val[$m]][] = $val;
    //$cnt++;

}

3 个答案:

答案 0 :(得分:4)

使用array_maparray_sum

function array_average($arr)
{
  return array_sum($arr)/count($arr);
}

$array = array_map("array_average", $input_array);
print_r($array);

更新:替代语法:

$array_average = function($arr) {
    return array_sum($arr)/count($arr);
};
$array = array_map($array_average, $input_array);
print_r($array);

答案 1 :(得分:0)

试试这个:

$av_array = [];
foreach($res_arr as $val)
{
    $av_array[] = array_sum($val)/count($val);
}
var_dump($av_array);

答案 2 :(得分:0)

这样做..

foreach($arr as $arr1)
    {
        foreach($arr1 as $k=>$v)
        {
            $sum_arr[]=$v;
        }
        echo $avg = array_sum($sum_arr)/count($sum_arr);
        unset($sum_arr);
    }
}