sortieren in textdatei

karlo16

Grünschnabel
hallo forum,
ich lasse mir formulareingaben in eine textdatei ausgeben und wollte nun fragen ob es möglich ist, die ausgabe zu sortieren? das script sieht so aus:

PHP:
<table border="0" width="70%">
<?php
if (isset($absenden)){
$datei = fopen("eintrag.txt","a");
$eintrag = ereg_replace("\n","<br>",$eintrag);
$eintrag = stripslashes($eintrag);

$daten = " 
<tr>
<td>$name<hr width='120' align='left'></td> 
<td>$stadt<hr width='120' align='left'></td> 
<td>$jahr<hr width='120' align='left'></td>
<td>$alter<hr width='120' align='left'></td>
</tr>  \n\n ";

fwrite($datei,$daten);

fclose($datei);
}
if (file_exists("eintrag.txt")){
$datei = fopen("eintrag.txt","r");
$daten = fread($datei,filesize("eintrag.txt"));
print $daten;
} else {
print "<b>Es sind keine Einträge vorhanden!</b>";
}
?> 
</table>

ich würde gerne als erstes nach "name" sortieren, zweites kriterium wäre "stadt" und das dritte dann "jahr". ist sowas möglich?
 
Hast du schon mal daran gedacht mit einem Datenbank-Managmentsystem wie etwa MySQL zu arbeiten? Denn MySQL bietet gegenüber PHP umfangreichere und komfortablere Möglichkeiten die Daten zu sortieren.
 
*offtopic*

@ karlo16: bitte achte in deinen Beiträgen auf die Groß- und Kleinschreibung:

Netiquette Nr.15 hat gesagt.:
Unser Forum ist kein Chatroom. Kurz-Beiträge ("Ein-Zeilen Postings"), die einfach so ins Forum "geklatscht" werden, werden ohne Vorwarnung von einem Moderator oder Administrator gelöscht. Das gleiche gilt insbesondere für Beiträge, die in Rechtschreibung, Satzbau und Verständlichkeit nicht ein vernünftiges, allgemein übliches und altersgruppen-übergreifendes Niveau erfüllen. Jugendsprache, regional verbreitete Dialekte und durchgehend kleingeschriebene Beiträge sind ebenfalls unerwünscht. Mit anderen Worten: wer erfolgreich die im Deutsch-Unterricht erlernten Kenntnisse praxisnah auf unserem Forum anwenden kann, wird nicht mit dieser Regel in Konflikt kommen. "Wiederholungstäter" werden, nachdem sie zuvor von einem Moderator auf die Mängel hingewiesen wurden, ggf. unbefristet gesperrt.


Quelle: http://www.tutorials.de/netiquette.html
 
Probier einmal folgendes:

PHP:
<?php 
     /*INHALT DER TEXTDATEI, müßte dann bei Dir geändert werden!
     
     Mayer Musterstadt 2006 20
     Theisen Zuhause 2005 23
     Huber Meinestadt 2002 30
     u.s.w....     
     
     */
     
     $file = file("test.txt"); // Text in das Array $file lesen.
          
     for($i=0;$i < count($file);$i++){ 
       $key[] = explode(' ',$file[$i]); // Name, Stadt, Jahr und Alter trennen.
       
     $array[] = array($key[$i][0],$key[$i][1],$key[$i][2],$key[$i][3]); //Hier wieder zusammenfügen in ein mehrdimensionale Array.
                        
      }
      function sortiere_name($x,$y){ //Funktion sortiere nach Namen 
        
        if($x[0]== $y[0])
           return 0;
        else if ($x[0] < $y[0])
           return -1;
        else
           return 1;
      }
      
      if($_GET['sort'] == 'name'){ //Prüft wenn der Link zum sortieren aktiviert wurde und gibt dann die Daten sortiert aus. 
      
      usort($array,'sortiere_name'); 
      
      }
      
echo '<a href="test.php?sort=name">Einträge nach Namen sortieren?</a><br><br>';//Link zum absenden der $_GET Informationen!
      
      for($a=0;$a < count($array);$a++){
        // Ausgabe der Daten 
        echo '<tr>
             <td>'.$array[$a][0].'<hr width="120" align="left"></td> 
             <td>'.$array[$a][1].'<hr width="120" align="left"></td> 
             <td>'.$array[$a][2].'<hr width="120" align="left"></td>
             <td>'.$array[$a][3].'<hr width="120" align="left"></td>
             </tr><br>'; 
       }
    
 ?>
 
Zurück