web-dev-qa-db-fra.com

Comment trouver la moyenne de tableau en php?

Exemple:

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

En fait, comment trouver la valeur moyenne de ce tableau en excluant vide S'il vous plaît aider à résoudre ce problème.

28
Dinesh G

vous devez d’abord supprimer les valeurs vides, sinon la moyenne ne sera pas précise.

alors

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

DÉMO

Manière plus concise et recommandée

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

Voir ici

60
Mubin

La réponse acceptée fonctionne pour les exemples de valeurs, mais en général, utiliser simplement array_filter($a) n'est probablement pas une bonne idée, car il filtrera toutes les valeurs nulles réelles ainsi que les chaînes de longueur nulle.

Même '0' est évalué à false, vous devez donc utiliser un filtre qui exclut explicitement les chaînes de longueur zéro.

$a = array_filter($a, function($x) { return $x !== ''; });
$average = array_sum($a) / count($a);
15
Don't Panic
echo array_sum($a) / count(array_filter($a));
2
Martyn Shutt