1.3k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Ich bekommen viele viele Zahlen aus einer MySQL Abfrage.
Also: 4,6,3,6,4,2,1,6,8,9,5 ec.

Nun will ich wissen wie oft jede Zahl vorgekommen ist.
Also:

4: 2x
6: 3x
2: 1x
1: 1x
3: 1x
und so weiter

Nur, wie mache ich das mit PHP?
Ich bin ratlos :-(

1 Antwort

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo,

vorausgesetzt die Anzahl der unterschiedlichen Werte ist begrenzt (z.B. alle Werte zwischen 0 und 10) dann kannst du die Abfrage für jeden Wert einmal machen und dabei das Selektierungskriterium um den Wert erweitern (where .... .... AND GefundenerWert=x)
Dann befinden sich im Ergebnisarray nur die Werte=x. Anschließend kannst du mit Count
php.net/manual/de/function.count.php
die Anzahl der Elemente in diesem Array bestimmen.

Die andere Variante ist, du definierst eine Variable für jeden möäglichen Ergebniswert, also $anzahl_1, $anzahl_2 ...
Dann gehst du mit einer foreach Schleife über das gesamte Ergebnis rüber und zählst in einem switch - case Konstrukt die Variable dann eins hoch, wenn der dazugehörige Wert vorliegt.

switch ($Ergebniswert)
{
case 1:
$Anzahl_1 ++;
case 2:
$Anzahl_2++
..
..
..
default:
Hier Fehlerbehandlung für unzulässige Werte
}


Gruß
computerschrat
...