如何在PHP中计算移动平均值(数组中n个先前元素的平均值)?

时间:2019-01-25 18:05:35

标签: php arrays foreach moving-average

PHP具有trader_sma的功能,用于计算移动平均值。由于概念很简单,因此我尝试编写一个函数来实现此目的。为此,我在循环期间将数组中的最后n个元素保留为一个数组,

function sma($array,$period){
    foreach($array as $element){
        $c[$element[0]]=$element[1];
            if(count($c)>$period){
                $garbage = array_shift($c);
                $average = array_sum($c)/$period;
                $result[]=array($element[0],$average);
            }
    }
return($result);
}

其中输入和输出数组具有array(array(['x'],['y']))

的结构

该函数运行完美,但是当输入较大时,PHP trader_sma比我的函数快10倍。因此,我得出的结论是我的功能不是正确的方法,或者至少不是效率方法。

您有什么建议吗?

0 个答案:

没有答案