2015-11-01 70 views
6

實施例:如何在php中查找數組的平均值?

$a[] = '56'; 
$a[] = '66'; 
$a[] = ''; 
$a[] = '58'; 
$a[] = '85'; 
$a[] = ''; 
$a[] = ''; 
$a[] = '76'; 
$a[] = ''; 
$a[] = '57'; 

實際上如何找到從該陣列不包括空平均值。請幫忙解決這個問題。

+0

你有什麼試過的?計算平均數量或者在PHP中實現它有問題嗎? – JimL

回答

15

首先您需要刪除空的vals,否則平均值將不準確。

所以

$a = array_filter($a); 
$average = array_sum($a)/count($a); 
echo $average; 

DEMO

+2

請記住,您應該首先檢查以確保count()是正數,否則您將得到零除錯誤 –

0
echo array_sum($a)/count(array_filter($a)); 
+0

你需要做count(array_filter($ a))以不包含空值。 – JimL

+0

@JimL剛剛發現。很快就會糾正。 –

4

接受的答案工程爲示例值,但一般僅使用array_filter($a)可能不是一個好主意,因爲它會過濾掉任何實際的零個值以及零長度的字符串。

即使'0'的計算結果爲false,因此您應該使用明確排除零長度字符串的過濾器。

$a = array_filter($a, function($x) { return $x !== ''; }); 
$average = array_sum($a)/count($a);