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

Din*_*h G 34 php arrays average

例:

$a[] = '56';
$a[] = '66';
$a[] = '';
$a[] = '58';
$a[] = '85';
$a[] = '';
$a[] = '';
$a[] = '76';
$a[] = '';
$a[] = '57';
Run Code Online (Sandbox Code Playgroud)

实际上如何从这个数组中找出不包括空的平均值.请帮忙解决这个问题.

Mub*_*bin 69

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

所以

$a = array_filter($a);
$average = array_sum($a)/count($a);
echo $average;
Run Code Online (Sandbox Code Playgroud)

DEMO

更简洁和推荐的方式

$a = array_filter($a);
if(count($a)) {
    echo $average = array_sum($a)/count($a);
}
Run Code Online (Sandbox Code Playgroud)

看这里

  • 请记住,您应首先检查以确保count()为正,否则您将得到除以零的错误 (3认同)
  • array_filter也将删除零,从而使平均值产生偏差。 (2认同)

Don*_*nic 15

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

甚至'0'评估为false,因此您应该使用明确排除零长度字符串的过滤器.

$a = array_filter($a, function($x) { return $x !== ''; });
$average = array_sum($a) / count($a);
Run Code Online (Sandbox Code Playgroud)


Mar*_*utt 7

echo array_sum($a) / count(array_filter($a));
Run Code Online (Sandbox Code Playgroud)