2015-11-01 10 views
6

例:この配列が空を除くから平均値を見つけるための方法を実際にPHPの配列から平均を見つけるには?

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

。この問題の解決にお役立てください。

+0

何を試しましたか? PHPで平均数を計算したり実装したりするのに問題がありますか? – JimL

答えて

15

最初に空の値を削除する必要があります。そうでなければ、平均は正確ではありません。

ので

$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

@ジムルはちょうどそれを見つけました。まもなく修正されます。 –

4

受け入れ答えは、例の値のために動作しますが、それは実際のゼロ値を除外しますので、一般的には単にarray_filter($a)を使用すると、おそらく良いアイデアではありません長さがゼロの文字列も含まれます。

evenでも、falseと評価されるため、ゼロ長の文字列を明示的に除外するフィルタを使用する必要があります。

$a = array_filter($a, function($x) { return $x !== ''; }); 
$average = array_sum($a)/count($a); 
関連する問題