我写了这个来在我的股票程序中计算调和平均值。希望这可以帮助那些不想使用 PECL 的人。该函数接受无限数量的参数,而无需将它们放入数组中,这比 PECL 扩展处理函数的方式更好。
<?php
/**
* @author Daniel Morris
*/
function harmonic () {
$num_args = func_num_args ();
for ($i = 0; $i < $num_args; $i++) {
$sum += 1 / func_get_arg ($i);
}
return $num_args / $sum;
}
// 测试
echo harmonic (1, 2, 3, 4, 5);
echo harmonic (-1, 3, 4, 10293);
echo harmonic (-1, -2, -3, -4, -5);
// 2.1897810218978
// -9.6022389365052
// -2.1897810218978
?>