在 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