<?php class istatistik{ function ortanca($veri){ $ortanca = $this->yuzdebirlik($veri,50); return $ortanca; } function yuzdebirlik($veri,$yuzdebirlik){ if( 0 < $yuzdebirlik && $yuzdebirlik < 1 ) { $p = $yuzdebirlik; }else if( 1 < $yuzdebirlik && $yuzdebirlik <= 100 ) { $p = $yuzdebirlik * .01; }else { return ""; } $say = count($veri); $tumindeks = ($say-1)*$p; $sayiindex = intval($tumindeks); $deger = $tumindeks - $sayiindex; sort($veri); if(!is_float($deger)){ $sonuc = $veri[$sayiindex]; }else { if($say > $sayiindex+1) $sonuc = $deger*($veri[$sayiindex+1] - $veri[$sayiindex]) + $veri[$sayiindex]; else $sonuc = $veri[$sayiindex]; } return $sonuc; } function ceyrekler($veri) { $q1 = $this->yuzdebirlik($veri,25); $q2 = $this->yuzdebirlik($veri, 50); $q3 = $this->yuzdebirlik($veri, 75); $ceyrek = array ( '25' => $q1, '50' => $q2, '75' => $q3); return $ceyrek; } } $s = new istatistik(); $veri = array(12,34,56); echo "25. Yüzdebirlik = ".$s->yuzdebirlik($veri,25)."<br />"; echo "Ortanca (50. yuzdebirlik) = ".$s->ortanca($veri)."<br />"; echo "95. Yüzdebirlik = ".$s->yuzdebirlik($veri,95)."<br />"; echo "Çeyrek(25., 50., 75. yuzdebirlik) = ".implode(", ", $s->ceyrekler($veri)); ?>
Çıktısı
25. Yüzdebirlik = 23 Ortanca (50. yuzdebirlik) = 34 95. Yüzdebirlik = 53.8 Çeyrek(25., 50., 75. yuzdebirlik) = 23, 34, 45