sle*_*man 13
如果你的平均值是什么意思,你不想存储所有数字然后存储数字的数量:
$last_average = 100;
$total_numbers = 10;
$new_number = 54;
$new_average = (($last_average * $total_numbers) + $new_number) / ($total_number + 1);
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 12
Average = Sum / Number of values
Run Code Online (Sandbox Code Playgroud)
只需存储所有3个值,就不需要任何复杂的操作.
如果您存储Average和Sum再计算Number of values你会失去一点点的准确性,由于平均的截断.
如果您存储Average和Number of values然后计算Sum你就会失去更多的精度.您有误差计算正确值更多余地Number of values不是Sum由于它是一个整数.
<?php
function avrg()
{
$count = func_num_args();
$args = func_get_args();
return (array_sum($args) / $count);
}
?>
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.array-sum.php#101727