Ankündigung

Einklappen
Keine Ankündigung bisher.

Ordnernamen nach Ausgabe sortieren

Einklappen

Neue Werbung 2019

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

  • Ordnernamen nach Ausgabe sortieren

    Hey Leute,

    ich steh vor einem kleinen Problem, das sich nicht so einfach lösen lässt. Ich hab hier ein Skript, das Verzeichnisnamen ausgibt.

    PHP-Code:
            $dir "images/gallery"
            
    $dp opendir($dir);
            while(
    $files readdir($dp))
            {
                
    $directory[(int) is_dir($files)][] = $files;        
            }
            
            foreach(
    $directory[0] as $z
            {
                if(
    $z <> ".." and $z <> "*" and $z <> ".")
                {
                    
    $i = -2;
                    echo 
    "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tr>"
                    echo 
    "<td width=\"30\"><img src=\"images/misc/folder.gif\"></td>"
                    echo 
    "<td width=\"300\">";
                    echo 
    "<a href=\"http://" $host $file "?site=gallery&page=" $z "\" style=\"font-weight: normal; text-decoration: none; font-family: Georgia; font-size: 12px; color: #222222;\">"
                    echo 
    $z;
                    echo 
    "</a></td>"
                    echo 
    "<td>. . . . . including[b]";
                        
                    
    $dir2 "images/gallery/$z"
                    
    $dp2 opendir($dir2);
                    while(
    $files2 readdir($dp2))
                    {
                        
    $directory2[(int) is_dir($files2)][] = $files2;
                        
    $i++;    
                    }
                    
                    if(
    $i >= 2
                    { 
                        echo (
    $i); 
                    } 
                    else { echo 
    "0"; }
                    
                    echo 
    "[/b]file(s)</td></tr></table>"
                }
            } 
    Leider hab ich's nicht geschafft, dass die Ausgabe "sortiert" erfolgt. Habe schon mit natcasesort(), sort(), array_sort(), etc. gearbeitet, aber ohne Ergebnisse. Bitte um Hilfe!!

    mfg - h.


  • #2
    Du musst das passende Feld (also das entsprechende Element von $directory) sortieren lassen
    PHP-Code:
    <?php
    $directory 
    = array(
        
    0=>array('d','c','a','b'),
        
    1=>array('y','x','z','w')
    );

    natsort($directory[0]);
    print_r($directory);
    ?>

    Kommentar


    • #3
      Benutz doch glob(), dann ist es schon sortiert.

      Kommentar


      • #4
        Wenn ich glob() verwende ( ---> foreach(glob($dir....) kommt aber folgende Meldung: Warning: glob() expects parameter 1 to be string, array given in

        Kommentar


        • #5
          Hmmm, ich hätte jetzt auch vermutet, du guckst ERST im Handbuch nach

          Kommentar


          • #6
            hey, rat mal, wie ich darauf gekommen bin, dass glob was mit foreach zu tun hat???? Guck mal hier: http://at.php.net/glob

            Kommentar


            • #7
              Und was übergeben die da als Parameter? Ein Feld (wie $directory) oder etwas anderes?
              Im Text um das Beispiel drumherum stehe, wie's funktioniert.

              Kommentar


              • #8
                Das mit glob() war jetzt nur ein Vorschlag, muss natürlich nicht genommen werden ...

                Kommentar


                • #9
                  Ja, aber ich hab scho alles Mögliche versucht. Nun bin ich schon auf asort,ksort, etc. umgestiegen. Tut sich aber nix. Kann mir bitte irgendjemand weiterhelfen?

                  Kommentar


                  • #10
                    By the way: Warum werden die Verzeichnisnamen so "unsortiert" ausgegeben?

                    Kommentar


                    • #11
                      Okay, nun habe ich - meines Wissens - alle sort-Methoden durchprobiert, eine hat tatsächlich funktioniert. Für den Fall, dass irgendwer mal dasselbe Problem hat und auf dieses Thema stößt, der erhält hier den Hinweis:

                      Nachdem der Array $directory[] erstellt wurde, dh nach der while-Schleife, muss mit "asort($directory[0])" sortiert werden. Das war's schon.

                      Kommentar


                      • #12
                        Ach, hab vergessen, dass glob() nie wirklich natürlich sortiert:

                        nur ein Beispiel:

                        http://www.cix88.de/cix_php/php__fun...n/cix_glob.php

                        Kommentar

                        Lädt...
                        X