例:
$a[] = '56';
$a[] = '66';
$a[] = '';
$a[] = '58';
$a[] = '85';
$a[] = '';
$a[] = '';
$a[] = '76';
$a[] = '';
$a[] = '57';
実際には、空を除いてこの配列から平均値を見つける方法。この問題の解決にご協力ください。
最初に空の値を削除する必要があります。削除しないと、平均が正確になりません。
そう
$a = array_filter($a);
$average = array_sum($a)/count($a);
echo $average;
より簡潔で推奨される方法
if(count($a)) {
$a = array_filter($a);
echo $average = array_sum($a)/count($a);
}
受け入れられた答えは値の例に対して機能しますが、一般に、単にarray_filter($a)
を使用することは、実際のゼロ値と長さゼロの文字列を除外するため、おそらく良い考えではありません。
'0'
はfalseと評価されるため、長さゼロの文字列を明示的に除外するフィルターを使用する必要があります。
$a = array_filter($a, function($x) { return $x !== ''; });
$average = array_sum($a) / count($a);
echo array_sum($a) / count(array_filter($a));