Die letzten 40 Einträge aus einer txt-Datei - aber keine doppelten...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Die letzten 40 Einträge aus einer txt-Datei - aber keine doppelten...

    Hallo

    ich hoffe, jemand von euch kann mir (Anfänger) bei folgendem kleinem Problem helfen:

    Auf [www.metatube.net] hab ich sowas ähnliches wie eine Search cloud installiert. Sie zeigt die letzten 40 Suchbegriffe, jeweils verlinkt zum Anklicken für eine erneute Suche. Die Suchbegriffe stammen aus einer txt-Datei, in die sie bei jeder Suche reingeschrieben werden. Das ganze klappt eigentlich ganz gut. Was ich jetzt aber noch verbessern möchte: In den 40 angezeigten Suchbegriffen sollen KEINE DOPPELTEN Suchbegriffe vorkommen (es liegt in der Natur der Sache, dass es jetzt viele doppelte gibt, weil die User tatsächlich auf die Suchbegriffe in der Search Cloud klicken und dadurch jeweils ein neuer Eintrag am Ende der txt-Datei entsteht, welcher wiederum zu den 40 letzten Einträgen dazugezählt wird). Der Code, wie er jetzt ist, lautet wie folgt:

    PHP-Code:
    <? 
    $d = file('suchbegriffe.txt'); 
    $end = count($d) - 40; 
    for ($i=count($d);$i>$end;$i--) { 
    echo "<a href=\"http://www.metatube.net/search.php?what=$d[$i]\" class=\"recent\">$d[$i]</a>&nbsp;&nbsp;"; 

    ?>
    Was muss ich hier also noch ergänzen, damit unter den 40 ausgegebenen Begriffen keine doppelten vorkommen. Ach ja, die txt-Datei umfasst natürlich alle (also mehr als nur die letzten 40) Suchbegriffe.

    Vielen Dank für eure Tipps.

  • #2
    Hi,

    gibt es einen grund warum du das mit ner textdatei machst ?
    Wenn du ne db nehmen würdest ließen sich deine probleme auf sql-ebene
    lösen.

    Wenn es aus irgendeinmen grund nicht anders geht, dann musst du halt
    bei jedem neuen eintrag prüfen ob er schon vorhanden ist, und ihn nur
    dann eintragen wenn es noch keinen gleichlautenden eintrag gibt.

    greets

    btw. solltest du das mal filtern was da gesucht wird
    Ausserdem ist es in tagclouds immer ganz praktisch wenn man
    anhand visuelle rückmeldungen sieht wie häufig ein tag benutzt wurde.

    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar


    • #3
      wenn schon text-datei, dann solltest du dir array_unique und array_reverse
      Kissolino.com

      Kommentar


      • #4
        PHP-Code:
        $daten = array();
        file('suchbegriffe.txt'); 
        $end count($d) - 40
        for (
        $i=count($d);$i>$end;$i--) { 
            if(
        in_array($d[$i],$daten) === false){
                
        $daten[] = $d[$i];
            }

        So würde ich dat mal probieren.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Danke Tobi, dein Vorschlag funktioniert. Das Problem ist einzig, dass nun kaum je 40 Suchbegriffe angezeigt werden, weil wir ja erst die 40 Stück nehmen und erst dann die doppelten raussuchen. Gibts 10 Doppelte, werden folglich nur noch 30 Suchbegriffe angezeigt. Wenn man das noch umgehen könnte, wärs perfekt...
          Zuletzt geändert von dabizi; 27.10.2006, 13:20.

          Kommentar

          Lädt...
          X