array sortieren - aber wie ?

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

  • array sortieren - aber wie ?

    Hallo, ich komme einfach nicht weiter ! Bitte Hilfe !

    Mit dem Mini-Script werden die Dateien aus dem Verzeichnis PFAD_ZU_IRGENDWOHIN ausgelesen und aufgelistet.
    Jeder Versuch die Dateien mit sort($files) oder ksort / usort etc. zu sortieren scheitert: die Dateien werden nach wie vor in scheinbar zufälliger Reihenfolge ausgegeben.
    Wo ist mein Denkfehler ???


    <?php

    $filedir = "PFAD_ZU_IRGENDWOHIN";

    $handle=opendir($filedir);

    $files = array();

    while (false !== ($file = readdir($handle))) {

    if ($file != "." && $file != "..")

    {

    echo "PFAD_ZU_IRGENDWOHIN/$file<br>";
    }
    }
    closedir($handle);

    ?>

  • #2
    Re: array sortieren - aber wie ?

    Original geschrieben von pebe
    Jeder Versuch die Dateien mit sort($files) oder ksort / usort etc. zu sortieren scheitert
    [...]
    Wo ist mein Denkfehler ???
    wo arbeitest dumit $files?
    wo schreibst du werte in $files?
    wo sortierst du $files?
    wo gibst du $files aus?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      [PHP]-Tags!

      Kommentar


      • #4
        Original geschrieben von TobiaZ
        [PHP]-Tags!
        sind doch gar keine drin
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          mmmmhhh

          Die Anmerkungen sind wohl als Hilfe gemeint !?
          Kommt aber irgendwie nicht an ...

          - mit $files = array(); lese ich die Dateien ein; Das Array könnte ich auch weglassen, PHP kapiert auch so, dass das ein array ist, oder ?

          - Werte werden gar keine in $files geschrieben (ist das das BloddyNewie-Fehler ??)

          - das sort($files) müsste ich wohl nach der while-Anweisuung unterbringen ... funzt aber nicht

          - und die Ausgabe kommt hier:
          echo "PFAD_ZU_IRGENDWOHIN/$file<br>";

          Kommentar


          • #6
            sort($files); ist prinzipiell richtig, aber...

            du kannst nur die werte sortieren, die im array stehen, da du keine reinschreibst...

            mach statt dem echo mal
            PHP-Code:
            $files[] = $file
            damit du in $files was stehen hast

            dann sortierst du nach der schleife, wie du schon richtig erkannt hast und gibst dann das array aus, http://www.php.net/foreach wäre ein guter ansatz
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Re: mmmmhhh

              Original geschrieben von pebe
              Die Anmerkungen sind wohl als Hilfe gemeint !?
              Kommt aber irgendwie nicht an ...

              - mit $files = array(); lese ich die Dateien ein; Das Array könnte ich auch weglassen, PHP kapiert auch so, dass das ein array ist, oder ?

              - Werte werden gar keine in $files geschrieben (ist das das BloddyNewie-Fehler ??)

              - das sort($files) müsste ich wohl nach der while-Anweisuung unterbringen ... funzt aber nicht

              - und die Ausgabe kommt hier:
              echo "PFAD_ZU_IRGENDWOHIN/$file<br>";

              1. wenn du implode() verwenden solltest, und ein array z.b. in einer schleife ist, und evtl. nicht durchläuft, hast du ein problem, wenn php dadurch nicht weiß, ob es ein array ist.

              2. warum nicht?

              3. scheint mir es so, dass du falsch denkst.. ich würde eher

              PHP-Code:
              $neuesarray = array();

              ##### blahblubträller


              if ( strlen($file) > )  { 

              $neuesarray[] = "PFAD_ZU_IRGENDWOHIN/$file<br>";




              natcasesort($neuesarray);

              echo 
              implode('<br>',$neuesarray); 
              Zuletzt geändert von xManUx; 25.08.2004, 14:41.

              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
              sondern mit den Augen das Manual zu lesen.

              Kommentar


              • #8
                Danke, aber ...

                <?php
                $filedir = "PFAD";
                $handle=opendir($filedir);
                $files = array();


                while (false !== ($file = readdir($handle)))
                {
                if ($file != "." && $file != "..")
                {
                $files[] = $file;
                }
                }

                sort($files);

                closedir($handle);
                echo "PFAD/$file";
                ?>

                liest jetzt gar nix mehr aus. ...

                Kommentar


                • #9
                  Original geschrieben von mrhappiness
                  gibst dann das array aus, http://www.php.net/foreach wäre ein guter ansatz
                  das array heißt bei dir $files
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Bitte die [PHP]-Tags zur Formatierung nutzen!

                    Kommentar


                    • #11
                      PHP-Code:
                      echo "PFAD/$files"
                      bringt aber auch nur ARRAY !?

                      Sind denn nun (doch) keine Werte im Array ?

                      Kommentar


                      • #12
                        ich mach den satz mal kürzer...
                        Original geschrieben von mrhappiness
                        http://www.php.net/foreach wäre ein guter ansatz
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Danke für Deine Geduld !!!
                          Und Deinen "sehr kurzen Satz"

                          Problem mit foreach gelöst !

                          Kommentar

                          Lädt...
                          X