Signatur
Beschreibung
stats_stat_percentile() ist Teil der PECL-Erweiterung stats und berechnet den Perzentilwert für eine gegebene Datenmenge. Ein Perzentil gibt an, welcher Wert in einer geordneten Datenmenge einem bestimmten Prozentsatz der Daten entspricht oder diesen unterschreitet. So bedeutet z. B. das 90. Perzentil (0.9), dass 90 % aller Werte kleiner oder gleich dem Ergebnis sind.
Die Funktion eignet sich besonders für statistische Auswertungen, etwa um Ausreißer zu identifizieren, Leistungsgrenzen zu bestimmen (z. B. Ladezeit-Benchmarks) oder Verteilungseigenschaften von Messdaten zu analysieren. Der Parameter percentile wird als Dezimalwert zwischen 0 und 1 angegeben (z. B. 0.5 für den Median).
Die Berechnung erfolgt durch lineare Interpolation zwischen den benachbarten Werten im sortierten Datensatz. Die Funktion steht nur zur Verfügung, wenn die PECL-Erweiterung stats installiert und geladen ist. Sie ist nicht Teil der PHP-Standardinstallation.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $data Pflicht | array | Ein numerisches Array mit den Messwerten, für die der Perzentilwert berechnet werden soll. Die Werte müssen numerisch sein. | |
| $percentile Pflicht | float | Der gewünschte Perzentilwert als Dezimalzahl zwischen 0 und 1. Zum Beispiel 0.5 für den Median (50. Perzentil) oder 0.75 für das 75. Perzentil. |
Rückgabewert
false zurückgegeben werden.Beispiele
Median und 90. Perzentil einer Messreihe berechnen
<?php
// Voraussetzung: PECL stats-Erweiterung ist installiert
$messwerte = [12, 7, 3, 14, 6, 11, 5, 4, 13, 9, 10, 8];
// Median (50. Perzentil)
$median = stats_stat_percentile($messwerte, 0.5);
echo 'Median: ' . $median . PHP_EOL;
// 90. Perzentil
$p90 = stats_stat_percentile($messwerte, 0.9);
echo '90. Perzentil: ' . $p90 . PHP_EOL;
Ladezeit-Analyse: 95. Perzentil für Performance-Monitoring
<?php
// Seitenladezeiten in Millisekunden
$ladezeiten = [120, 200, 150, 300, 250, 180, 99, 400, 175, 210, 160, 130, 350, 190, 220];
$p95 = stats_stat_percentile($ladezeiten, 0.95);
echo 'Ladezeit 95. Perzentil: ' . round($p95, 2) . ' ms' . PHP_EOL;
// Warnmeldung, wenn das 95. Perzentil über 300 ms liegt
if ($p95 > 300) {
echo 'Warnung: 5 % der Ladezeiten überschreiten ' . round($p95, 2) . ' ms!' . PHP_EOL;
}
// Wichtig · Fallstricke
Installation: Die Funktion ist Teil der PECL-Erweiterung stats und muss separat installiert werden: pecl install stats. Anschließend muss extension=stats.so in der php.ini aktiviert werden.
Percentile-Wert: Der Parameter percentile muss im Bereich 0 < percentile < 1 liegen. Ein Wert von 0 oder 1 bzw. Werte außerhalb dieses Bereichs können zu undefinierten Ergebnissen oder Fehlern führen.
Sortierung: Es ist nicht zwingend erforderlich, das Array vor dem Aufruf zu sortieren — die Funktion verarbeitet die Daten intern. Dennoch empfiehlt es sich, die Eingabedaten zu validieren und sicherzustellen, dass nur numerische Werte übergeben werden.