"for" verschateln aber nicht konstant

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

  • "for" verschateln aber nicht konstant

    Hallo,

    bin kein Profi, daher bitte nicht anschreien.

    Das Problem ist folgendes:

    ich habe ein mehrdimesionales Array. Ich möchte jedes Element mit Daten füllen.

    dass macht man normalerweise, indem man in sich z.B. "for-Schleifen" verschachtelt:

    for(){
    for() {
    ......
    }

    }

    Ich weiß zwar, wieviele Dimensionen es haben wird, aber das passiert zur Laufzeit des Programms, daher kann ich nicht fest im Code sagen so viel mal bitte Schleifen in ein ander packen und ausführen. Ich möchte gerne wissen, wie kann ich doch so was lösen.

    Beispiel:
    Ich habe im Programm festgestellt, dass das Array ungefähr so aussieht [0,1,2][1,2,3,4][1,2]. Wie soll ich vorgehen, damit ich jedes Element ansprechen kann, wobei die Anzahl der Dimensionen habe ich zur Laufzeit des Programms festgestellt und in eine Variable gespeichert.

    Da ich nicht wusste wie viele Dimensionen vorkommen, konnte ich jedes Element im Programm mit for-Schleifen nicht ansprechen und mit Daten füllen.

    Hofentlich habe ich mein Problem verständlich erklärt.

    Ich weiß ehrlich gesagt gar nicht weiter.

    Für eure Hilfe bedanke ich mich sehr im Voraus!


    Zuletzt geändert von wcphp; 10.05.2005, 16:20.

  • #2
    Re: "for" verschateln aber nicht konstant

    Original geschrieben von wcphp
    Ich weiß zwar, wieviele Dimensionen es haben wird, aber das passiert zur Laufzeit des Programms, daher kann ich nicht fest im Code sagen
    dann bau halt in die laufbedingungen der schleifen variablen statt fester werte ein.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich habe Dich jetzt nicht richtig verstanden aber ich glaube Du suchst nach
      rekursive Funktion.. Beispiel:

      PHP-Code:
      function fillArray($arr) {
          
      $retVal = array();
          
          if (!
      is_array($arr)) {
              foreach (
      $arr as $key => $val) {
                  if (
      is_array($val)) {
                      
      $retVal[$key] = fillArray($val);
                  } else {
                      
      $retVal[$key] = $val;
                  }
              }
          }
          return 
      $retVal;

      dise fun ktion soll nur eine Rekursion aufzeigen und mehr nicht.
      Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
      PHP Sicherheit
      PHPUnit[1-2]
      Professionelle Softwareentwicklung mit PHP 5
      Professionelle PHP 5-Programmierung

      Kommentar


      • #4
        Was heißt "ich habe ein Array"? Ich schätze, es steht nur irgendwo $a = array(); - richtig?

        Dann kannst du weder mit foreach() noch count() arbeiten sondern ...
        PHP-Code:
        for ($i 0$i $dimension1$i++)
            for (
        $j 0$j $dimension2$j++)
                
        $a[$i][$j] = $whatever

        Kommentar


        • #5
          Wahsaga und onemorenerd,

          ihr habt mich leider nicht verstanden, das liegt aber daran, dass ich das Problem schlecht beschrieben habe. Ich habe jetzt es korrigiert.

          Kommentar


          • #6
            schlimmerfinger hat deine frage richtig verstanden und beantwortet, imho. ob das beispiel so treffend ist, weiß ich nicht.

            Kommentar


            • #7
              Ja, stimmt, schlimmerfinger hat mein Problem richtig nachvollzogen und sehr guten Tipp gegeben. Wollte einfach genauer die Möglichkeit betrachten, daher habe nicht sofort geantwortet.

              Schlimmerfinger, danke dafür!

              Kommentar

              Lädt...
              X