tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1157
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    vomweg vomweg ist offline Grünschnabel
    Registriert seit
    Feb 2003
    Beiträge
    3
    Ich hoffe, dass diese Frage hier noch nicht vorkam. Wenn doch, entschuldige ich mich schonmal, aber die Suchfunktion funktioniert nicht.

    Also, folgendes Problem, an einem Beispiel erklärt:

    Habe eine typische Fußballtabelle in Excel erstellt, speicher sie als csv ab und lese sie mit php ein. So weit kein Problem.

    Jetzt möchte ich aber, dass mein php-script diese Datei sortiert, nach mehreren Kriterien, also zuerst nach punkten, dann nach der Differenz und letztendlich nach den erzielten Toren.
    Wie kann ich das verwirklichen? Bin für jede Hilfe dankbar!
    Ich denke mal, dass ich die Daten erst in ein Array einlesen und dort sortieren muss, aber da hapert es schon mit dem php-Wissen bei mir.
     

  2. #2
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    array_multisort ist dein freund...erfordert allerdings das du zu jedem wert ein array anlegst.
    bsp.:
    tore und punkte eines spieltages einlesen:
    PHP-Code:
    //Aufbau der Datei:
    //Team;Tore;Punkte

    //Trennzeichen für die einzelnen Werte
    $trenner ";";

    //Datei einlesen
    $array file("lalala.csv");
    //in die array steckt nun die mit file eingelese Datei

    //für die anzahl der Zeilen mache folgendes
    for($x=0;$x<count($array);$x++)
    {
        
    //splitte jede Zeile nach $trenner
        
    $matches explode($trenner,$array[$x]);
        
    $teams[] = $matches[0];
        
    $tore[] = $matches[1];
        
    $punkte[] = $matches[2];
    }

    //nun stecken in den Arrays $teams, $tore und $punkte alle Werte
    //und müssen nun noch sortiert werden:
    array_multisort (
    $punkteSORT_ASCSORT_NUMERIC
    $tore ,SORT_DESCSORT_NUMERIC
    $teamsSORT_ASCSORT_STRING);

    //nun ist alles sortiert und muß nur noch ausgegeben werden
    for($x=0;$x<count($teams);$x++)
    {
        
    //natürlich kommt das mit nem Template viel besser ^^
        
    echo "Team: ".$teams[$x]." Punkte: ".$punkte[$x]." Tore: ".$tore[$x];
    }

    //Have fun :D 
     

  3. #3
    vomweg vomweg ist offline Grünschnabel
    Registriert seit
    Feb 2003
    Beiträge
    3
    Super, klappt einwandfrei, tausend Dank!
     

  4. #4
    Avatar von bn
    bn bn ist offline Mitglied Brokat
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    395
    gern geschehen
     

  5. #5
    vomweg vomweg ist offline Grünschnabel
    Registriert seit
    Feb 2003
    Beiträge
    3
    Jetzt tut sich ein neues Problem auf:
    Dezimalzahlen werden nicht korrekt sortiert! Habe ich z.B. eine Zahl 1,5 und 1,6, wird dies nur nach der Stelle vor dem Komma sortiert und danach tritt direkt das nächste Sortierkriterium in Kraft.
     

  6. #6
    Registriert seit
    Feb 2002
    Beiträge
    144
    probier es mal mit . statt ,
    also 1.5 und 1.6
     

  7. #7
    Registriert seit
    Jul 2001
    Ort
    Bayern
    Beiträge
    969
    Du könntest auch alternativ über die lokalen PHP Einstellungen den . zum , machen. Aber empfehlen kann ich das nicht. Es ist in jeder mir bekannten Sprache üblich das , als Punkt zu schreiben. Kommt aus dem Englischen.
     

Ähnliche Themen

  1. CSV-Datei in PHP sortieren
    Von Kalito im Forum PHP
    Antworten: 9
    Letzter Beitrag: 31.08.10, 16:19
  2. Sortieren einer txt-Datei
    Von touristguy im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 14.07.08, 20:19
  3. Externe Datei sortieren
    Von MasterTobi im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 28.11.07, 11:35
  4. *.txt Datei sortieren
    Von bob134 im Forum Java
    Antworten: 3
    Letzter Beitrag: 19.10.07, 15:56
  5. Datei auf HDD sortieren
    Von DanielBodensee im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 19.04.04, 15:29