具有多维数组的Array_walk平均值

时间:2014-03-02 04:06:57

标签: php arrays multidimensional-array average

我有一个数组,我希望得到它的数组元素的平均值。

$array = array(
               '1' => array('1', '2'), 
               '2' => array('3', '7'), 
               '3' => array('5', '6'));

function average($arr)
    { if (!is_array($arr)) return false;
    return array_sum($arr)/count($arr); }

array_walk($array, 'average');
print_r($array);

问题是我的函数不是由array_walk应用的。我得到了我声明的完全相同的数组。

2 个答案:

答案 0 :(得分:2)

尝试

function average($elem){
   return array_sum($elem)/sizeof($elem);
}               
$arr = array_map('average',$array);

请参阅演示here

答案 1 :(得分:0)

如果您将多维数组值更改为它们的总和,那么您将从平均函数返回值而不是在任何地方接收它:

function average(&$arr)//&
{ 
    if (!is_array($arr)) return false;
    $arr = array_sum($arr)/count($arr); 
}