dynamische anzahl von verschachtelten schleifen

ohio

Erfahrenes Mitglied
gudn,

weiß jemand wie man es lösen kann eine beliebige anzahl von for-schleifen in einander verschachtelt zu realisieren, also ungefähr folgendermaßen:

anzahl schleifen: 4

ergäbe also:

PHP:
for (bla) {
  for (bla) {
    for (bla) {
      for (bla) {
 
        echo "so solls ausschaun";

      }
    }
  }
}


für jeglichen rat wär echt euch zu tiefstem dank verpflichtet ;)

cya..
 
eine lösung (wenn nicht sogar die einzige^^), die mir einfällt, wäre, das ganze rekursiv zu lösen --- so z.b.:

PHP:
function dofor($count) {
 for ($i = 1; $i <= $count; $i++) {
  dofor($i);
 };
 
 echo "bla\n";
}


dofor(5);


vom prinzip her :) leider macht php das meistens nicht mit ... rekursionen überschreiten häufig den maximal erlaubten speicherplatz und du bekommst eine meldung wie diese:
Fatal error: Allowed memory size of 15728640 bytes exhausted blablabla
;)

also warten wir mal, ob jemand ne bessere lösung findet :D
 
rekursion ist schon das richtige stichwort, nur solltest du dann auch den speicher den du evtl. in den schleifen vollhaust auch wieder freigeben... dann hast du das speicherproblem nicht mehr.
 
bei deinem beispiel ist das problem, dass du eine endlosrekursion hast ;)

eine abbruchbedingung gibt es bei dir nicht... php kann prima mit rekursionen umgehen, das problem dabei sitzt meistens vor dem computer ;)

aber denn du beispielsweise diverse klassen instanzierst und sonstwie speicher belegst, solltest du den auch wieder freigeben...
 
auf einen ähnlichen schnipsel bin ich auch gekommen jedoch fand genau hier der fehler statt bzgl. des speicher, nur ich wußte nichts damit anzufangen. vielleicht kann ja gecko mal ein machtwort sprechen zum thema speicher-entleerung oder was nötig wäre um die rekursion zu vervollständigen.. dank euch!
 
wenn jetzt wie in deinem beispiel 4 schleifen ineinander verschachtelt sind - wie oft soll denn eine schleife durchlaufen werden?
 
was willst du denn genau machen ?
diese ekligen for-schleifen kann man bestimmt umgehen ;)

noch nen kleines rekursionsbeispiel: ;)

PHP:
function mycount($i)
{
   if ($i>0)
	 return $i + mycount($i-1);
   else
     return 0;
}
echo mycount(5);

diese funktion summiert alle zahlen bis zum angegebenen wert:
1 + 2 + 3 + 4 + 5.
 
also des von gecko..

PHP:
function mycount($i)
{
   if ($i>0)
     return $i + mycount($i-1);
   else
     return 0;
}
echo mycount(5);

schmeißt bei mir dies heraus: 15

nicht mehr oder weniger, wo liegt da der fehler?
 
Zurück