2014-03-02 63 views
0

我有一个数组,我想使它的数组元素的平均值。Array_walk平均具有多维数组

$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

尝试

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

观看演示here

+0

简短,快速,运行良好,现场演示。非常感谢 – Wistar

0

您返回从平均函数的值,但不接受它的任何地方,如果你瓦纳改变多维数组值的总和做到这一点:

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

我已经试过这个解决方案,结果是一样的 – Wistar