2015-11-01 2 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

вам нужно сделать счет (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); 
Смежные вопросы