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倍。因此,我得出的结论是我的功能不是正确的方法,或者至少不是效率方法。
您有什么建议吗?