Fußballtabellen - Problem mit Sortierung
Ich bin dabei, einen Ligamanager zu programmieren.
Ich habe nur ein kleines Problem bei der Sortierung der Fußballtabellen. Will man die Bundesligatabelle sortieren, ist das ja kein Thema, da kann man mit array_multisort ohne Probleme arbeiten. Schwierig wird es, wenn man die Tabellen aus Italien, Spanien oder EM/WM sortieren will. Denn da gilt bei Punktgleichheit der direkte Vergleich und nicht die Tordifferenz. Direkter Vergleich bedeutet, dass bei allen Punktgleichen eine Art "Minitabelle" errechnet wird, bei der nur die Spiele untereinander berücksichtigt werden. Jetzt müsste man also mit u(a)sort und einer Vergleichsfunktion arbeiten - und genau da hakt's bei mir leider. Ich weiß zwar, dass der Stringvergleich <0, 0 und >0 ergibt, aber wie muss ich das nun anstellen, dass ich (abhängig von der Einstellung, ob direkter Vergleich gilt oder nicht - das wird aus der Config ausgelesen) nun nach einander nach verschiedenen Kritieren sortieren kann? Mal ein Beispiel bei der EM: Tschechien - Lettland 2:0 Deutschland - Niederlande 1:0 Lettland - Deutschland 0:1 Niederlande - Tschechien 4:0 Niederlande - Lettland 2:0 Deutschland - Tschechien 1:2 würde folgende Tabelle OHNE direkten Vergleich ergeben: 1. Niederlande 6 Pkt (6:1 Tore) 2. Deutschland 6 Pkt (3:2 Tore) 3. Tschechien 6 Pkt (4:5 Tore) 4. Lettland 0 Pkt (0:5 Tore) d.h., dass jetzt die Spiele zwischen Niederlande, Deutschland und Tschechien für den direkten Vergleich berücksichtigt werden, also ohne die Spiele gegen Lettland: 1. NED 3 (4:1) 2. GER 3 (2:2) 3. CZE 3 (2:5) in dem Beispiel würde sich also auch im Endeffekt nichts verschieben, könnte aber gut passieren, z.B. wenn nur Deutschland und die Niederlande Punktgleich wären am Ende und Deutschland eben das Spiel gewonnen hat. Dann wäre Deutschland vorne. Ich denke, das Prinzip is klar geworden (is eh nur zur Erklärung, damit auch Leute helfen können, die sich mit Fußball nicht auskennen ;)). Ach ja, ein Wort vielleicht noch zu den Arrays. Ich würde gerne die Ergebnisse auslesen und dann jeweils die Team-ID als Schlüssel nehmen, d.h. z.B.: $punkte[1] = 6; $punkte[2] = 5; ... $differenz[1] = 3; $differenz[2] = -1; usw. und eben entsprechend sortieren. Vielen Dank schonmal für die Hilfe! |
Ich hoffe, das kommt jetzt nicht zu spät. Dein Eintrag ist ja schon etwas länger her.
Ich würde es so ähnlich machen: Die Spiele sind in einer DB "spiele" mit folgender Struktur: ID HID //ID DER HEIMMANNSCHAFT AID //ID DER AUSWÄRTSMANNSCHAFT toreH //TORE DER HEIMMANNSCHAFT toreA //TORE DER AUSWÄRTSMANNSCHAFT Dann liest du die Ergebnisse so aus, dass du ein Array mit folgender Struktur hast (als Beispiel für das Team mit der ID=5): PHP-Code:
PHP-Code:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:20:07 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.