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)); }