【问题标题】:Array_walk average with multidimensional array具有多维数组的 Array_walk 平均值
【发布时间】:2014-03-02 04:06:57
【问题描述】:

我有一个数组,我想取其数组元素的平均值。

$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没有应用我的函数。我得到了与我声明的完全相同的数组。

【问题讨论】:

    标签: php arrays multidimensional-array average


    【解决方案1】:

    试试

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

    查看演示here

    【讨论】:

    • 简短、快速、运行良好和现场演示。非常感谢
    【解决方案2】:

    您正在从平均函数返回值但没有在任何地方接收它,如果您想将多维数组值更改为它们的总和,请执行以下操作:

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

    【讨论】:

    • 这个方案我已经试过了,结果是一样的
    猜你喜欢
    • 1970-01-01
    • 2012-01-06
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多