array sortiert ausgeben geht nicht

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

  • array sortiert ausgeben geht nicht

    hallo

    ich habe dises script das mit alle verzeichnisse auf meinem server aisliest und unzeigt.

    PHP-Code:
    function show_all_files($ordner$links 0$sub FALSE) {
    $ida $_GET['id'];
     
    $handle opendir($ordner);
      while (
    $file readdir ($handle)) {
        if(
    $file != "." && $file != "..") {
          if(
    is_dir($ordner."/".$file)) {
            
    show_all_files($ordner."/".$file$links+30TRUE);
          
    $test[] = "$ordner/$file";
          } 
        }
      }

       foreach(
    $test as $test)
       if (
    $ida == $test){
       echo 
    "<option value='$test' selected='true'> $test</option>";
       }
       else
       {
          echo 
    "<option value='$test'> $test<br></option>";
          }
      
    closedir($handle);

    nur leider wir test unsortiert angezeigt.
    ich habe schon alles versucht und auch schon gesucht aber ich bekomme es einfach nicht sortiert raus.

    kann mir jemand helfen???

    vielen dank im voraus

  • #2
    wie wäre es denn, wenn du wenigstens eine einzige sortierfunktion bemühst?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      PHP-Code:
      asort($test);   
         foreach(
      $test as $test)
         if (
      $ida == $test){
         echo 
      "<option value='$test' selected='true'> $test</option>";
         }
         else
         {
            echo 
      "<option value='$test'> $test<br></option>";
            } 
      geht nicht.

      Kommentar


      • #4
        warum nicht
        PHP-Code:
        sort($test);
        reset($test); 

        Kommentar


        • #5
          keine genaue ahnung warum nich aber es ist so.
          aber es kömmt diese aus gabe:

          ..
          ....de/Service
          ....de/admin
          ....de/cgi-bin
          ....de/error
          ....de/galerie
          ....de/hoyer
          ....de/htaccess
          ....de/image
          ....de/skript
          ...

          ich habe den verdacht das es an den indices von text[] ligt.

          kann man die sich anzeigen lassen?

          Kommentar


          • #6
            Original geschrieben von penizillin
            warum nicht
            PHP-Code:
            sort($test);
            reset($test); 
            Hast du es damit mal ausversucht, statt asort()?

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              ja dabei kommt das ergebnis.

              kann es daran ligen das die in indices ich vortlaufent sind?

              immer wenn es eine ebene tifer im verzeichnis baum geht fängt er mit test[0] wieder an.

              PHP-Code:
              sort($test);
              reset($test); 
              echo 
              "<pre>";
              print_r($test);
              echo 
              "</pre>";; 
              liefert volgende aus gabe:

              Array
              (
              [0] => /...de/hoyer/banner
              [1] => /...de/hoyer/config
              )

              Array
              (
              [0] => /...de/Bewerbung
              [1] => /...de/Download
              [2] => /...de/Kontakt
              .
              .
              [9] => /...de/hoyer
              .
              .

              Kommentar


              • #8
                Original geschrieben von abanta
                liefert volgende aus gabe:

                Array
                (
                [0] => /...de/hoyer/banner
                [1] => /...de/hoyer/config
                )

                Array
                (
                [0] => /...de/Bewerbung
                [1] => /...de/Download
                [2] => /...de/Kontakt
                .
                .
                [9] => /...de/hoyer
                .
                .
                Kann nicht sein...2 Arrays in einer Variable geht nicht! Kann es sein, dass du zwei Variablen ausgibts? Nur eins davon kann von dem sort() reset() sein, das andere muss von woanders sein!

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Original geschrieben von ghostgambler
                  Kann nicht sein...2 Arrays in einer Variable geht nicht! Kann es sein, dass du zwei Variablen ausgibts? Nur eins davon kann von dem sort() reset() sein, das andere muss von woanders sein!
                  eigentlich will ich nur eine variable $test[].
                  es sei den er macht aus dem script mehr (aber das sool eigentlich nicht).

                  PHP-Code:
                  function show_all_files($ordner$links 0$sub FALSE) {
                  $ida $_GET['id'];
                   
                  $handle opendir($ordner);
                    while (
                  $file readdir ($handle)) {
                      if(
                  $file != "." && $file != "..") {
                        if(
                  is_dir($ordner."/".$file)) {
                          
                  show_all_files($ordner."/".$file$links+30TRUE);
                        
                  $test[] = "$ordner/$file";
                        } 
                      }
                    }

                     foreach(
                  $test as $test)
                     if (
                  $ida == $test){
                     echo 
                  "<option value='$test' selected='true'> $test</option>";
                     }
                     else
                     {
                        echo 
                  "<option value='$test'> $test<br></option>";
                        }
                    
                  closedir($handle);

                  Kommentar


                  • #10
                    PHP-Code:
                    <?php
                    function show_all_files($ordner$links 0$sub FALSE) {
                     
                    $handle opendir($ordner);
                      while (
                    $file readdir ($handle)) {
                        if(
                    $file != "." && $file != "..") {
                          if(
                    is_dir($ordner."/".$file)) {
                          
                    $test[] = "$ordner/$file";
                          } 
                        }
                      }

                      echo(
                    "<pre>");
                      
                    sort($test);
                      
                    reset($test);
                      
                    print_r($test);
                      echo(
                    "</pre>");
                      
                    closedir($handle);
                    }

                    show_all_files("phpdoc");

                    ?>
                    hab damit eben alle ordner schön sortiert ausgeben können.

                    Kommentar


                    • #11
                      Original geschrieben von penizillin
                      hab damit eben alle ordner schön sortiert ausgeben können.
                      jaja aber nur alle ordner auf im ordner "phpdoc"

                      und was ist mit einer ebene tiffer oder 2 o.n ebenen tiffer?
                      das script soll ALLE ordner anzeigen.

                      Kommentar


                      • #12
                        immer langsam, die betonung lag auf den worten "schön sortiert".
                        gehts dir um's array sortieren, oder um ordner-bäume einlesen?

                        Kommentar


                        • #13
                          nun ich will alle ordner in sortiert aus geben.

                          und ich dacht pack die ordner in nen array sortiert sie und gib sie aus.

                          Kommentar


                          • #14
                            PHP-Code:
                            function show_all_files($ordner$links 0$sub FALSE) {
                            $ida $_GET['id'];
                             
                            $handle opendir($ordner);
                              while (
                            $file readdir ($handle)) {
                                if(
                            $file != "." && $file != "..") {
                                  if(
                            is_dir($ordner."/".$file)) {
                                  
                            show_all_files($ordner."/".$file$links+30TRUE);
                                  
                            $test[] = "$ordner/$file";
                                  }
                                 }
                              }
                            sort($test);
                            reset($test); 
                            echo 
                            "<pre>";
                            print_r($test);
                            echo 
                            "</pre>";
                            //foreach($test as $test)
                              
                            closedir($handle);

                            ergibt doch nur eine array test[] oder?

                            Kommentar


                            • #15
                              was ergibt nur ein array?
                              das ist eine funktionsdeklaration, nicht mehr und nicht weniger. innerhalb dieser funktion soll (wenn ich's richtig verstanden habe) ein array $test gefüllt werden. zum schluss erfolgt eine ausgabe. formuliere deine frage anders.

                              Kommentar

                              Lädt...
                              X