PHPには平均値(mean)や中央値(median)を求める関数はないようです。
配列の平均値(相加平均)を返す関数は単純ですが、以下のように求めることができます。
function average($list){
$sum = 0;
foreach($list as $a){
$sum += $a;
}
return($sum/count($list));
}
同様に、配列の中央値を返す関数は以下のようになります。
中央値は偶数個と奇数個で分かれますので場合分けが必要です。(添え字が0から始まっていることに注意。)
function median($list){
sort($list);
if (count($list) % 2 == 0){
return (($list[(count($list)/2)-1]+$list[((count($list)/2))])/2);
}else{
return ($list[floor(count($list)/2)]);
}
}
余談ですが、集団の性質を表すのに平均値はよく使われます。しかし、場合によっては中央値や最頻値(mode)を用いた方がより実態を表すのに適切なことがあります。
よく江戸時代の平均寿命が○○歳であったとか、スポーツ選手の平均所得が○○円、といったことが書かれることがありますが、これも、新生児の死亡や、少数の高額所得者に全体が引っ張られるため、中央値で表した方が実際の印象に近いかもしれません。(もちろん、これらの因子も含めた”平均”であることを認識していれば問題はありません。)
平均は下記のコードのほうがシンプルで良いと思います。
function average($a){ return($array_sum($a)/count($a)); }