variable Array Tiefe

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

  • variable Array Tiefe

    Hi !

    Zu folgendem hätte ich gerne gewusst, ob das irgendwie variabel geht.

    Dieses Array habe ich beispielsweise ... (könnte auch 1 oder 3 oder mehr keys/values enthalten)

    PHP-Code:

    $x 
    = array ([0] => 1, [1] => 5); 
    Nun würde ich gerne wissen, ob es möglich ist, über eine Schleife (oder andere Konstrukte), damit auf ein zweites Array $ergebnis[$x[0]][$x[1]] zuzugreifen.

    Natürlich sollte es. wenn z.B.
    PHP-Code:
    $x = array ([0] => 4
    ist, dann auch auf $ergebnis[$x[0]] zugegriffen werden.

    Gruß

    Le Cheffe

  • #2
    wo ist jetzt genau das problem? Ich würde sagen for() oder foreach(), je nach array- Typ
    h.a.n.d.
    Schmalle

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



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

    Kommentar


    • #3
      Original geschrieben von schmalle
      wo ist jetzt genau das problem? Ich würde sagen for() oder foreach(), je nach array- Typ
      Hi !

      Mein Problem ist, dass ich das ganze gerne allgemeingültig für alle Fälle lösen würde, also höchstens die "Anzahl der Tiefe" habe, aber ich nicht weiß, wie ich dann (je nach Tiefe) das Array so angeben soll, dass es immer stimmt.

      PHP-Code:

      $anz 
      count($x); // Tiefe des Arrays

      // hier Schleife hin ... 
      Soweit so gut, aber mal drei Beispiele genommen.

      - $anz sei 1, dann habe ich $ergebnis[$x[0]]
      - $anz sei 2, dann habe ich $ergebnis[$x[0]][$x[1]]
      - $anz sei 3, dann habe ich $ergebnis[$x[0]][$x[1]][$x[2]]
      usw.

      Vielleicht übersehe ich eine einfach Möglichkeit, aber irgendwie will mir keine Möglichkeit einfallen, dieses in einer Schleife so zu konstruieren, dass ich das eben für $anz > 0 hinbekommen würde.

      Gruß

      Le Cheffe

      Kommentar


      • #4
        Hmm..
        PHP-Code:
        $arr_temp[] = "hallo";
        $arr_temp[] = " ";
        $arr_temp[] = "Welt";
        $arr_temp[] = "!!";

        for ( 
        $i 0$i sizeof($arr_temp); $i++ )
          echo 
        $arr_temp[$i]; 
        Schwieriger wäre es, wenn du noch ein Array im Array hast:
        PHP-Code:
        $arr_temp[] = "Hallo";
        $arr_temp[] = " ";
        $arr_temp[] = "Welt";
        $arr_temp[] = array(', wie ist das Wetter heute?');
        $arr_temp[] = "Beschissen..";

        function 
        arr_print($arr)
        {
          for ( 
        $i 0$i sizeof($arr); $i++ )
          {
            
        $curr = &$arr[$i];
            if ( 
        is_array($curr) )
              
        arr_print($curr);  // rekursiver aufruf dieser Funktion..
            
        else
              echo 
        $curr;
          }
        }

        arr_print($arr_temp); 
        Sollte dein verschachteltes Array ein gemischtes, also ein assoziatives und ein numerisches Array sein, dann würde ich es so machen:
        PHP-Code:
        $arr_temp[] = "Hallo";
        $arr_temp['test_1'] = " ";
        $arr_temp[] = "Welt";
        $arr_temp['test_2'] = array('test' => ', wie ist das Wetter heute?');
        $arr_temp[] = "Beschissen..";

        function 
        arr_print($arr)
        {
          foreach ( 
        $arr as $k => $v )
          {
            if ( 
        is_array($v) )
              
        arr_print($v);  // rekursiver aufruf dieser Funktion..
            
        else
              echo 
        $v;
          }
        }

        arr_print($arr_temp); 
        Ich hoffe ich hab dir helfen können.

        Kommentar

        Lädt...
        X