Daten aus Textdatei sortieren

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

  • Daten aus Textdatei sortieren

    Ich komme irgendwie mit den Sortierfunktionen (PHP3) nicht klar.
    Ich habe folgende Ausgangsituation:
    1. Eine Datei (mods), in der Link-Einträge sind, die später für eine Navigation benötigt werden, in folgender Form:
    Ziffer|Link|Frame|Name|Bereich|
    Beispiel:
    Code:
    1|/login.php3|_self|Login|open|
    3|/impress.php3|_self|Impressum|open|
    2|/closed/index.php3|_self|Member|closed|
    und das Script, das diese Datei ausliest:
    Code:
    $mod_file = "mods";
    // Oeffnen der MOD-Datei
    // und Array erzeugen.
    $fp = fopen($mod_file, "r");
    $file_contents = fread($fp, filesize($mod_file));
    fclose($fp);
    $line = explode("\n", $file_contents);
    $i = 0;
    $size = sizeof($line) - 1;
    $nav_tab_width = $nav_tab_width - 2;
    
    // Elemente des MOD-Datei-Arrays verarbeiten.
    while($i <= $size) {
    
        // Format/Print links.
        $data_pair = explode("|", $line[$i]);
        
        $position = $data_pair[0];
        $theurl = $data_pair[1];
        $op_target = $data_pair[2];
        $name = $data_pair[3];
        $access = $data_pair[4];
    
        // Navigationstabelle 
    	$nav_id = str_replace(" ","_",$name);
    	// Leerzeichen ersetzen, wird als Bild-ID im Mouse-Effekt verwendet
    
    // die eigentliche Ausgabe im folgenden Teil kuerze ich mal wegen
    // der Übersichtlichkeit, die funzt.
    	  ?>
    	  <div align="left">
    	  <a href="<?php print $theurl; ?>" target="<?php print $op_target; ?>">
    	  <?php print $name; ?>
    	  </a>
    	  </div>
    	  <?
    
      // Ausgelesene Zeile beenden und fortfahren.
      $i++;
    }
    
    ?>
    Nun soll die Reihenfolge der Navigation bei der Ausgabe sich nach der Ziffer am Anfang richten, die die Position darstellen soll.
    Ich schäme mich, aber ich weiss wirklich nicht, wie und wo ich z.B. asort() o.ä. einbinde.

  • #2
    hi,

    nachdem du die while-Schleife durchlaufen hast und deine Daten in $data_pair drin sind, mußt du eigentlich nur sort($data_pair); aufrufen. Müßte schon reichen.

    Kommentar


    • #3
      hi

      beim ersten mal wo du explode() einsetzt, erzeugst du ein array $line. dieses array sortierst du bevor du mit etwas weiterfährst.

      ps: statt fread() könntest du auch file() http://php.net/manual/en/function.file.php verwenden. so musst du nicht exploden().
      ------------------------
      http://swisswebgroup.com
      ------------------------

      Kommentar

      Lädt...
      X