Einzelnen Beitrag anzeigen
  #1  
Alt 31.05.2004, 15:30:42
Ligamanager Ligamanager ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 1
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!
Mit Zitat antworten