TXT-Datei Sortieren, und auch noch auswerten.

  • PHP

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TXT-Datei Sortieren, und auch noch auswerten.

    Hi

    Ich habe folgendes Problem:

    Ich möchte, das mein PHP-Script aus einer TXT-Datei die anzahl Zeilen ausliest (am besten wohl über Array). Dann soll er anhand von dieser Zahl soviele Zeilen einer HTML Tabelle erstellen wie eben nötig sind. Aber es kommt noch besser.

    Die Datenstruktur der Datei sieht so aus:

    user1 | 64
    user2 | 462
    user3 | 2


    .. und so weiter...

    Jetzt soll er die Usernamen auch noch Ordnen nach der grösse der Zhl die hinter dem | stehen. Ich dachte mir mit explode & Arrays wird's schon gehn, habe jedoch leider keinen ansatz. ;(

    Er soll die Usernamen natürlich nach nr.-grösse ordnen (Usernamen mit grössten Zahlen oben) und dementsprechend in die Tabelle schreieben. Die alleroberste Zeile jedoch soll immer bestehen und es sind 2 Spalten. In der 1. Zeile steht in der 1. Spalte "Username" und in der 2. Spalte "Points".

    Hoffe ihr wisst was ich meine ^^

    PS: Wenns geht möchte ich es nicht mit Datenbank lösen. Aber wenn die absoluten Spitzenprofis das sagen, geht's wohl nicht anders.
    :thumbsup:
  • Hi! Ich meld mich nach etwa 3 Jahren mal wieder hier im Forum...^^

    Achso zu deinem Problem:
    Wenn ich deine Frage richtig verstanden habe ist die Lösung deines Problemes dies hier:

    PHP-Quellcode

    1. <?php
    2. $handle = fopen ("user.txt", "r");
    3. $arr = array();
    4. while (!feof($handle)) {
    5. $buffer = fgets($handle);
    6. $buffer_exp = explode(" | ", $buffer);
    7. $user = trim($buffer_exp[0]);
    8. $score = trim($buffer_exp[1]);
    9. if (!array_key_exists($user,$arr) || array_key_exists($user,$arr) && $score > $arr[$user]) {
    10. $arr[$user] = $score;
    11. }
    12. }
    13. fclose ($handle);
    14. arsort($arr);
    15. echo "<table><tr><th>Benutzername</th><th>Punkte</th></tr>";
    16. foreach ($arr as $key => $value) {
    17. echo "<tr><td>".$key."</td><td>".$value."</td></tr>";
    18. }
    19. echo "</table>";
    20. ?>
    Alles anzeigen

    Den größten Teils des kurzen Skriptes hättest du dir von php.net holen können. Wenn du mit PHP noch nicht so fit bist sind Google und PHP.net deine besten Freunde um schnell eine Lösung zu finden.
    PS: Wenns geht möchte ich es nicht mit Datenbank lösen. Aber wenn die absoluten Spitzenprofis das sagen, geht's wohl nicht anders.

    Mit einer Datenbank hättest du den Vorteil das du das Sortieren und richtige bereitstellen der Informationen der Datenbank überlassen könntest. Dies geht erheblich schneller und ist ein geringerer Datenaufwand. :)

    EDIT1: Hat sich ein kleiner Fehlerteufel eingeschlichen. ;)
    Dateien
    • help.zip

      (558 Byte, 635 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lucki90 ()

  • DANKE!

    Du hast zwar zweimal user5 in die TXT-Datei geschrieben, was mich zuerst irritiert hat, aber dann gecheckt!

    Ich bin nicht mehr ganz Anfänger...

    Ich mach halt nie sowas mit schleifen. Ich kann PHP, aber nur das, was ich wirklich oft brauche! Meine grossen stärken in PHP sind z. B. Logins (per DB, TXT und im Script selber userdaten gespeichert), Formulare (Natürlich in HTML, ich meine überprüfung, absenden und in Log datei schreiben), und so weiter...

    Wie geschrieben, schleifen und so brauch ich nie! php.net, Google.com, php-kurs.info, und viele mehr kenn ich!

    Aber wie geschrieben:

    DANKE!
    :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jlsnews () aus folgendem Grund: Zurück aus Ferien