zweidimensionales array durchlaufen!?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by petro_0; 24-08-2006, 09:28.
    gruss pedro

    Comment


    • #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;
        }

      Comment


      • #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

        Comment


        • #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

          Comment


          • #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;
                }
              }


            Comment


            • #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
              )
              Last edited by petro_0; 24-08-2006, 11:45.
              gruss pedro

              Comment

              Working...
              X