Array sortieren

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

  • Array sortieren

    Hallo,

    ich habe in einem Verzeichnis Dateien mit Namen, die ungefähr so aufgebaut sind:

    6_dateiname_1_10.gif, 6_dateiname_1_102.gif, 6_dateiname_1_103.gif....
    6_dateiname_1_281.gif, 6_dateiname_1_282.gif....

    Ich möchte diese Dateien aus dem verzeichnis auslesen und sortieren lassen (also array[0] sollte 6_dateiname_1_1.gif sein und dann das nächste array halt 6_dateiname_1_2.gif) und dann eben sortiert ausgeben lassen

    mein code sieht dazu wie folgt aus:

    PHP-Code:
    $verz=opendir(test2);

    while(
    $file=readdir($verz))
    {
        if(
    $file!="." && $file!="..")
        {
        
        
    $array_verpackt[]=$file;
        
        }
    }


    natcasesort($array_verpackt);

    echo 
    $array_verpackt[0];
    echo 
    "<br>";
    echo 
    $array_verpackt[1];
    echo 
    "<br>";
    echo 
    $array_verpackt[2];
    echo 
    "<br>";
    echo 
    $array_verpackt[3];
    echo 
    "<br>";
    echo 
    $array_verpackt[46]; 
    nun gibt der mir das aber gar nicht sortiert aus, sondern wild durcheinander.

    Wo liegt der Fehler?

    Für eine Hilfe wäre ich sehr dankbar!

  • #2

    http://de2.php.net/manual/en/function.natcasesort.php

    Kommentar


    • #3
      und wo steht da nun die Antwort auf meine Frage?

      Kommentar


      • #4
        Ich glaub für deine Verwendung ist scandir() besser.

        http://de2.php.net/manual/de/function.scandir.php
        video2mp3.de - Kostenlos Videos von verschiedenen Videoportalen in MP3 umwandeln

        Kommentar


        • #5
          Der Befehl geht auf meinem Server nicht, da er nicht PHP 5 unterstützt, aber ich habe auf der Seite einen anderen gefunden, mit dem es geklappt hat. Vielen Dank!

          Kommentar


          • #6
            beachte die indizierung der elemente im sortierten array.

            Kommentar


            • #7
              Original geschrieben von penizillin
              beachte die indizierung der elemente im sortierten array.
              das hatte damit wenig zu tun.

              Kommentar


              • #8
                Original geschrieben von Oelpfanne
                das hatte damit wenig zu tun.
                doch

                Kommentar


                • #9
                  das hatte damit wenig zu tun.
                  Du hast das Manual doch nicht gelesen. Sonst hättest du gesehen, dass diese Sortierfkt die Zuordnung von Key/Value nicht anrührt. Daher kommt vllt erst key1 dann key5 dann key0 etc ppt
                  Lauf einfach mit einem foreach() durch dein Array und die Sortierung sollte korrekt ausgegeben werden
                  PHP-Code:
                  foreach($array_verpackt as $key=>$value){
                      echo 
                  $key."\t\t\t".$value;

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    versteh ich nicht ganz, ich nutze jetzt genausowenig foreach wie vorher, sondern hab ne normale while schleife und trotzdem sortiert er mir das richtig.

                    Kommentar


                    • #11
                      while-Schleife mit Zähler oder while-Schleife mit z.B. each ?
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        PHP-Code:
                        while (false !== ($filename readdir($verz))) {
                            
                        $array_verpackt[] = $filename;

                        Kommentar


                        • #13
                          Du wendest ja keine Sortierfkt an. Wo liest du dein $array_verpackt aus ?

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            PHP-Code:

                            sort
                            ($array_verpackt);

                            for(
                            $x=2;$x<=$anzahl;$x++)
                            {

                            echo 
                            $array_verpackt[$x]."<br>";


                            Kommentar


                            • #15
                              Ich bin bis anhin davon ausgegangen, dass du natcasesort() verwenden würdest. sort() ordnet die keys neu an und somit kannst du sie ohne Probs mittels einer Zählschleife korrekt ausgeben.
                              Mit natcasesort() musst du ohne Zähler arbeiten, weil die keys nicht verändert werden.

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X