Sortieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sortieren

    PHP Code:
    <?php
    $files 
    = array();
    $handle=opendir('dates/');
    while (
    $file readdir ($handle)) {
       if (
    $file != "." && $file != "..") {
           
    $files[] = $file;
       }
    }
    closedir($handle);
    sort($files);
    foreach ( 
    $files as $file ) {
        echo
    "<p> - ";
       include(
    "dates/".$file);
       echo
    "</p>";
    }
    if (
    "" == $file) {
    echo
    "Keine Termine Eingetragen!";
    }
    ?>
    Das hab ich bereits. Es liest einen Order aus, in dem .txt dateien sind. Diese haben jeweils Namen mit einem Datum (z.b. 02_02_2002.txt), diese werden dann nach Namen sortiert und der Reihe nach Ausgegeben. Nun mein Problem:

    Ich möchte sie geau umgerdreht ausgegeben haben, d.h. immer das neuste Datum zuerst haben.

    Kann mir wohl jemand helfen?^^....danke

  • #2
    das hilft:

    PHP Code:
    if(filectime($path.$file) > filectime($path.$array[0])):
        
    $array_tmp[] = $file;
        
    $array array_merge($array_tmp,$array);
    else:
         
    $array[] = $file;
    endif; 
    einfach in die while schleife einbauen und fertig array enthält die sortierten file namen mit neusten datum als erstes

    Comment


    • #3
      wie werden diese dateien erstellt?
      wenn du einfluß drauf hast, ändere das format zu YYYYMMDD.txt und schon ist alles viel einfacher.

      ansonsten wirst du jeden dateinamen mittels regulärer ausdrücke oder einfacher stringfunktionen, wie explode(), auseinander nehmen müssen. in wiefern dir filectime() besser passt, musst du selbst entscheiden.

      Comment


      • #4
        ich würde da einfach mit einem zeitstempel arbeiten, sprich mit

        PHP Code:
        time() 
        der gibt dir die sekunden seit dem 1.1.1970 wieder und dann einfach nach der größe der zahl sortieren...
        ist dem prinzip von pinizillin gleich...
        Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung.
        [Albert Einstein

        Comment


        • #5
          Original geschrieben von penizillin
          [B]wie werden diese dateien erstellt?
          wenn du einfluß drauf hast, ändere das format zu YYYYMMDD.txt und schon ist alles viel einfacher.
          is schon scheisse wenn man die schatztruhe hat und das schloss nich aufkriegt, wa?

          thx, man

          Comment


          • #6
            Macht nicht folgendes kurze Stück genau das was du möchtest?
            (Andersrum sortierten -> rsort()!)
            PHP Code:
            <?php
            $files 
            glob('dates/*.txt');
            if ( 
            is_array($files) ) {
                
            rsort($filesSORT_STRING);
                foreach ( 
            $files as $file ) {
                    echo 
            '<p> - ';
                    if ( @
            readfile('dates/'.$file) === FALSE )
                        echo 
            'Huch, Datei dates/'.$file.' konnte nicht gelesen werden.';
                    echo 
            '</p>';
                }
            } else echo 
            'Keine Termine eingetragen!';
            ?>

            Comment

            Working...
            X