array sortieren

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

  • array sortieren

    Hallo ich habe folgendes Script
    Code:
    PHP-Code:
    <?
    $files = array();
    $dh = opendir("./include/gallery");
    while($file = readdir($dh)){
    if($file != "." and $file != ".."){
             array_push($files, $file);
    }}
    closedir($dh);
    ?>
    <html><head><script language="JavaScript">
    function loadDown(){
     var datei = document.myform.files.value;
     location.href = datei;
    }
    </script></head><body><form name=myform>
    <select name=files onchange="javascript:loadDown();">
    <?php
    sort
    ($files);
    foreach (
    $files as $key => $val) {
       echo 
    "files[" $key "] = " $val "\n";}
    ?>
    <?
    foreach($files as $filename){
         print "<option value=\"./include/gallery/".$filename."\">$filename</option>\n";
    }
    ?>

    wie kann ich das menü was entsteht nach datum sortieren?

  • #2
    Re: array sortieren

    So könnte es funktionieren:
    PHP-Code:
    <?
    $files = array();
    $dh = opendir("./include/gallery");
    while($file = readdir($dh)){
    if($file != "." and $file != ".."){
             array_push($files[filemtime($file)], $file);  // <--
    }}
    closedir($dh);
    ?>
    <html><head><script language="JavaScript">
    function loadDown(){
     var datei = document.myform.files.value;
     location.href = datei;
    }
    </script></head><body><form name=myform>
    <select name=files onchange="javascript:loadDown();">
    <?php
    krsort
    ($filesSORT_NUMERIC); // <--
    foreach ($files as $timestamp => $filenames) { // <--
       
    sort($filenames); // <--
       
    foreach ($filenames as $key => $val) {
       echo 
    "files[" $key "] = " $val "\n";}
    // <--
    ?>
    Rest bekommst du sicher allein hin.

    Kommentar


    • #3
      danke für die hilfe dann kommt der fehler:
      ..."Warning: filemtime(): Stat failed for" und dann der der pfad eben, der fehler ist in zeile 14:
      PHP-Code:
        array_push($files[filemtime($file)], $file);  // <-- 
      woran kann das liegen?

      Kommentar


      • #4
        Stat failed = Datei nicht vorhanden.

        Irgendwas verdrehst du da.
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          das problem ist ja das er das verzeichnis angibt :
          Warning: filemtime() [function.filemtime]: Stat failed for Salza_Storm (errno=2 - No such file or directory) in /srv/www/htdocs/web182/html/include/gallery/pull.php on line 14

          In dem Verzeichnis Salza Storm sind mehrere Bilder und eine index.php.

          Kommentar


          • #6
            Original geschrieben von Anti2003
            das problem ist ja das er das verzeichnis angibt
            Das ist doch nicht wirklich ein Problem oder?
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              aber wo liegt nun der fehler? Das verzeichnis hat er doch gefunden (die anderen auch), warum kann er es nicht einfach wie bei meinem ganz oben geposteten script einfach nur nach datum ausgeben? ist das so schwer?

              Kommentar


              • #8
                Was ergibt

                echo $file
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  da wird gar nichts ausgegeben.. ich verzeifel hier noch gibts da nicht eine andere lösung irgendwie?

                  Kommentar


                  • #10
                    ...gibts da nicht eine andere lösung irgendwie?
                    Wenn's auf Linux*läuft beispielsweise:
                    PHP-Code:
                    $files = ( true == file_exists($dir) ) ? explode("\n",`ls -ltr $dir | awk '{ print ($9) }'`): Array(); 
                    Gruß,

                    Hans

                    P.S: Habs nicht hinbekommen die Whitespaces+Leerzeilen auf diesem Weg rauszutrimmen, habs mit grep versucht, vielleicht hat jemand nen Tip?

                    Kommentar

                    Lädt...
                    X