zweidimensionales array durchlaufen!?

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

  • zweidimensionales array durchlaufen!?

    Morgen!

    Hab mal eine einfache Frage für euch Männer!

    Ich möchte folgendes Array gerne ausgeben und eben ansprechen, dass es genau so aussieht wie per print_r.

    Array
    (
    [0] => Array
    (
    [0] => hallo
    [1] => welt
    )

    [1] => Array
    (
    [0] => Array
    (
    [0] => dies
    )

    [1] => Array
    (
    [0] => ist
    )

    [2] => Array
    (
    [0] => ein
    [1] => test
    )

    )

    )

    Wo liegt hier mein Fehler?

    PHP-Code:

    $ausgabe 
    = array(array('hallo''welt'), array(array('dies'), array(ist), array('ein''test')));

    echo 
    "$ausgabe"<br>" "(";

    foreach(
    $ausgabe as $key => $value){

    echo 
    "<br>" "(" "<br>";
    echo 
    "[$key]" "=>" "$value";
    echo 
    "<br>";
    echo  
    $ausgabe['0'][0];
    echo 
    "<br>";
    echo  
    $ausgabe['0'][1];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][0][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][1];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][1][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][2];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][2][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][2][1];
    echo 
    "<br>" ")" "<br>" ")"
    Als Ausgabe bekomme ich aber folgendes!!

    Array
    (
    (
    [0]=>Array
    hallo
    welt
    Array
    dies
    Array
    ist
    Array
    ein
    test
    )
    )
    (
    [1]=>Array
    hallo
    welt
    Array
    dies
    Array
    ist
    Array
    ein
    test
    )
    )

    Wie muss ich mein Script ändern, damit ich

    hallo
    welt
    Array
    dies
    Array
    ist
    Array
    ein
    test

    nur einmal bekomme?

    Klar soweit?

    Danke

    Gruss petro
    gruss pedro

  • #2
    zweidimensionales array durchlaufen!?

    Morgen!

    Hab mal eine einfache Frage für euch Männer!

    Ich möchte folgendes Array gerne ausgeben und eben ansprechen, dass es genau so aussieht wie per print_r.

    Wo liegt hier mein Fehler?

    PHP-Code:

    $ausgabe 
    = array(array('hallo''welt'), array(array('dies'), array(ist), array('ein''test')));

    echo 
    "$ausgabe"<br>" "(";

    foreach(
    $ausgabe as $key => $value){

    echo 
    "<br>" "(" "<br>";
    echo 
    "[$key]" "=>" "$value";
    echo 
    "<br>";
    echo  
    $ausgabe['0'][0];
    echo 
    "<br>";
    echo  
    $ausgabe['0'][1];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][0][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][1];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][1][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][2];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][2][0];
    echo 
    "<br>";
    echo  
    $ausgabe['1'][2][1];
    echo 
    "<br>" ")" "<br>" ")"
    Als Ausgabe bekomme ich aber folgendes!!

    Array
    (
    (
    [0]=>Array
    hallo
    welt
    Array
    dies
    Array
    ist
    Array
    ein
    test
    )
    )
    (
    [1]=>Array
    hallo
    welt
    Array
    dies
    Array
    ist
    Array
    ein
    test
    )
    )

    Wie muss ich mein Script ändern, damit ich

    hallo welt Array dies Array ist Array ein test

    nur einmal bekomme? Klar soweit? Danke

    Gruss petro
    Zuletzt geändert von petro_0; 24.08.2006, 09:28.
    gruss pedro

    Kommentar


    • #3
      Wenn dein Array auch mehr als 2 Dimensionen bekommen kann, dann schreib dir eine rekursive Funktion.


      Wenn es nie mehr als 2 Dimensionen werden mach ne verschachtelte Schleife

      Bsp:
      PHP-Code:
      foreach($arr AS $sub_arr){
        foreach(
      $sub_arr AS $value){
          echo 
      $value;
        }

      Kommentar


      • #4
        danke!endlich antw.mir mal wer!

        Danke dir.
        das hilft mir weiter.
        oh mann bin einfach nicht weiter gekommen.

        Frage 2 da du es ansprichst.

        Was meinst du mir Wenn dein Array auch mehr als 2 Dimensionen bekommen kann, dann schreib dir eine rekursive Funktion?

        Wat isn dat?

        danke Gruss P.
        gruss pedro

        Kommentar


        • #5
          Jetzt habe ic hes so geschrieben und bekomme rotz raus.
          Kann mir jemand sagen warum?


          PHP-Code:
          $ausgabe = array(array('hallo''welt'), array(array('dies'), array(ist), array('ein''test')));

          foreach(
          $ausgabe as $sub_ausgabe){
              foreach(
          $sub_ausgabe as $value){


          echo  
          $sub_ausgabe[0];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[0][0];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[0][1];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1][0];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1][0][0];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1][1];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1][1][0];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1][2];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1][2][0];
          echo 
          "<br>";
          echo  
          $sub_ausgabe[1][2][1];
              }

          gruss pedro

          Kommentar


          • #6
            Überleg mal was die innere foreach macht... warum greifst du bitteschön bei der Ausgabe dann noch auf einen Wert aus der äußeren foreach zu? Les bitte nochmal die Manual-Seite zu foreach.

            PHP-Code:
            foreach($ausgabe as $sub_ausgabe){
              foreach(
            $sub_ausgabe as $value){
                echo 
            $value;
              }


            Wenn dein Array mehr als 2 Ebenen "tief" ist, und die Zahl der Ebenen unbestimmt ist, macht eine Funktion die den Array rekursiv durchläuft mehr Sinn. Rekursion heißt das sich eine Funktion solange selbst aufruft bis es keinen Sinn mehr macht.

            Bsp:

            PHP-Code:
            function output_array($array){

              foreach(
            $array AS $value){
                if(
            is_array($value)){
                  
            output_array($value);
                }else{
                  echo 
            $value;
                }
              }


            Kommentar


            • #7
              ick blicks nicht!

              also das $sub_ausgabe keinen sinn macht war mir nachdem ich den syntax gepostet habe auch klar! danke! ich depp!

              aber das schei... php.net manuell für foreach gibt nix her!
              da steht nie was man wissen will.leider ;o(

              habe immernoch fehler aber etz geb ich erstmal auf euch zu nerven...

              muss es mir anders bei bringen..


              ...falsl es doch einer sehen will..
              hier viel spass beim lachen!

              PHP-Code:
              $ausgabe = array(array('hallo''welt'), array(array('dies'), array(ist), array('ein''test')));

              echo 
              $ausgabe;
              echo 
              "<br>";

              foreach(
              $ausgabe as $sub_ausgabe){
                  foreach(
              $sub_ausgabe as $key => $value){

              echo  
              $sub_ausgabe;
              echo 
              "<br>";

              echo 
              "[$key]" "=>" $value;

              echo  
              $value[0];
              echo 
              "<br>";
              echo  
              $value[0][0];
              echo 
              "<br>";
              echo  
              $value[1];
              echo 
              "<br>";
              echo  
              $value[1][0];
              echo 
              "<br>";
              echo  
              $value[2];
              echo 
              "<br>";
              echo  
              $value[2][0];
              echo 
              "<br>";
              echo  
              $value[2][1];
              echo 
              "<br>";
                  }

              etz passt garnichts mehr... so oder so ähmlich versuche ich jetzt einen treffer zu landen....

              bei print_r bring er nur noch

              Array
              (
              [0] => ein
              [1] => test
              )
              Zuletzt geändert von petro_0; 24.08.2006, 11:45.
              gruss pedro

              Kommentar

              Lädt...
              X