如何在php中从数组中找到平均值?

2022-08-30 08:41:23

例:

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

实际上,如何从此数组中查找平均值,不包括空。请帮助解决此问题。


答案 1

首先,您需要删除空值,否则平均值将不准确。

所以

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

演示

更简洁和推荐的方式

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

请参阅此处


答案 2

接受的答案适用于示例值,但通常简单地使用可能不是一个好主意,因为它会过滤掉任何实际的零值以及零长度的字符串。array_filter($a)

即使计算结果为 false,因此应使用显式排除零长度字符串的筛选器。'0'

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