在 PHP 中计算数字的平均数

Olorunfemi Akinlua 2023年1月30日
  1. 对特定数字集使用 array_sum()count()
  2. 使用 while 循环进行连续数字集
在 PHP 中计算数字的平均数

当我们在 PHP 中编码时,我们会遇到需要执行的不同数学运算。加法、减法、乘法和除法是原生的。

一个典型的就是平均数,也叫均值。在本文中,我们考虑使用 PHP 内置函数来计算一组已知数字和一组连续数字的平均值。

对特定数字集使用 array_sum()count()

简单的平均公式是数字的总和除以数字的频率(计数)。因此,要找到 1、3、4、5 和 6 的平均值,我们将添加 1+3+4+5+6,得到 19,然后将 19 除以数字的频率 5,平均值将为 3.8。

代码 - PHP:

<?php
    $sum = 1 + 3 + 4 + 5 + 6;
    $frequency = 5;

    $average = $sum/$frequency;
?>

但是,当我们可以轻松计算数字的频率时,这相当简单。因此,我们需要诸如 array_sum()count() 之类的函数。

使用这两个内置函数,你可以轻松计算数组中数字的总和,因为数组是一种更好的数据结构,可以存储整数和浮点数等元素序列。

让我们将相同的数字存储在一个数组中并计算平均值。

代码:

<?php
   $numbers = [1, 3, 4, 5, 6];

   $average =  array_sum($numbers)/count($numbers);
   print_r($average);
?>

输出:

3.8

让我们更高级一点,我们自动生成一些随机数。

<?php
     $numbers = array_map(function () {
       return rand(0, 100);
   }, array_fill(0, 193, null));

   $average =  array_sum($numbers)/count($numbers);
   print_r($average);
?>

输出:

49.331606217617

你的输出将与我们的不同,因为数组中的数字是随机生成的。

使用 while 循环进行连续数字集

前面的例子涵盖了一个已知数字的列表。但是,在某些情况下,你可能希望随时计算平均值,例如在用于教育仪表板的 PHP 应用程序中。

假设你想计算学生在该路径上的每周平均数。我们可以使用 while 循环不断地询问数字并在每个间隔计算数字。

在这个例子中,我们使用了 readline() 函数和典型的 array_sum()count() 函数。此外,我们将通过以下 shell 语句使用交互式 PHP shell。

php main.php

代码 - main.php

<?php

$temp = [];

echo "\nAdding numbers repeatedly to get the average at each intervals";
echo "\nIf you want to terminate the program, type 000";

while (True) {
  echo "\n\n";
  $a = (float)readline("Enter a number: ");
  if ($a != 000) {
    array_push($temp, $a);
    $average = array_sum($temp)/count($temp);
    echo "Current average is ". $average;
    echo "\n";
  } else {
    break;
  }
}

$frequency = count($temp);

echo "\nAverage of all the numbers ($frequency) is $average.";

?>

$temp 数组将保存用户将输入的数字。while 循环允许我们永远不断地请求一个新数字,除非满足中断条件,即零 (0)。

下面的代码通过 readline() 函数进行用户输入,并确保它是接收到的浮点数。

$a = (float)readline("Enter a number: ");

以下命令将接收一个整数。

$a = (int)readline("Enter a number: ");

我们使用 array_push() 函数将用户的号码添加到 $temp 数组中。之后,我们像之前一样使用 array_sum()count() 函数计算平均值。

完成后,我们可以输入 0 来结束程序,这将启动 break 语句。最后,我们打印所有用户输入数字的平均值。

$frequency = count($temp);

echo "\nAverage of all the numbers ($frequency) is $average.";

交互式外壳输出:

> php main.php

Adding numbers repeatedly to get the average at each interval
If you want to terminate the program, type 0

Enter a number: 11

Current average is 1


Enter a number: 3

Current average is 2


Enter a number: 6

Current average is 3.3333333333333


Enter a number: 88

Current average is 4.5


Enter a number: 1010

Current average is 5.6


Enter a number: 0

Average of all the numbers (5) is 5.6.
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn