AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [php] array nach meherern kriterien sortieren
Thema durchsuchen
Ansicht
Themen-Optionen

[php] array nach meherern kriterien sortieren

Ein Thema von fcg · begonnen am 13. Nov 2004 · letzter Beitrag vom 13. Nov 2004
Antwort Antwort
fcg

Registriert seit: 15. Apr 2003
98 Beiträge
 
#1

[php] array nach meherern kriterien sortieren

  Alt 13. Nov 2004, 10:21
moin moin

ich habe folgendes Array:

Code:
 $teams[0][punkte] = 12;
 $teams[0][tordif] = 2;

 $teams[1][punkte] = 12;
 $teams[1][tordif] = 4;

 $teams[2][punkte] = 16;
 $teams[2][tordif] = -1;
bis jetzt sortieren ich so:

Code:
  function multisort($a, $b)
    {
      if ($a[punkte] == $b[punkte]) return 0;
     return ($a[punkte] < $b[punkte]) ? -1 : 1;
    }
   usort ($teams, "multisort");
Allerdings möchte ich nun die sortierung erweitern, das wenn die Pukte gleich sind, nach der Tordif. sortiert wird. Wie mache ich das am besten?

Gruß
fcg
.: Wer für alles offen ist, kann nicht ganz dicht sein! :.
  Mit Zitat antworten Zitat
MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#2

Re: [php] array nach meherern kriterien sortieren

  Alt 13. Nov 2004, 11:13
Ich hatte mal eine ähnliche Problematik (war ein Bundesligatippspiel).

Ich habe diese dann so umgangen, dass ich die Daten schon per SQL-Abfrage vorsortiert habe (ORDER BY).
Somit habe ich mein Array dann schon schön vorsortiert bekommen.

Vielleicht hilft Dir es
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.069 Beiträge
 
Delphi 12 Athens
 
#3

Re: [php] array nach meherern kriterien sortieren

  Alt 13. Nov 2004, 11:50
Du brauchst nur für die Ausgabe "Punkte sind gleich" nochmal soeine Auswertung (wie du schon hattest) einsetzten.

Code:
  function multisort($a, $b)
    {
      if ($a["punkte"] == $b["punkte"])
        {
          if ($a["tordif"] == $b["tordif"]) return 0;
          return ($a["tordif"] < $b["tordif"]) ? -1 : 1;
        }
      return ($a["punkte"] < $b["punkte"]) ? -1 : 1;
    }

   usort ($teams, "multisort");

PS: sind "punkte" und "tordif" igendwelche Konstenten (sieht jedenfalls nicht so aus), also wenn es keine sind, dann sollte(muß) diese Angabe in ', oder " eingeschloßen werden.
Code:
$var["punkte"]
$var["tordif"]
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz