Verschachtelte foreach-schleifen
Rüdiger
- php
0 Tobias Kloth0 Rüdiger
hallo zusammen
ich habe ein problem mit verschachtelten foreach-schleifen.
mein ergebnis array aus der DB sieht so aus:
Array
( [1] => Array
( [bla1] => 1
[bla2] => text
[bla3] => text
[bla4] => Array
( [4] => Array
( [NR] => 4
[bla1] => text
[bla2] => text
[bla3] => text )
[19] => Array
( [NR] => 19
[bla1] => text
[bla2] => text
[bla3] => text ))
[bla5] => Array
( [1] => Array
( [NR] => 1
[ja] => 1
[nein] => 0 )
[12] => Array
( [NR] => 12
[ja] => 0
[nein] => 1 ) )
[bla6] => Array
( [NR] => 4
[bla1] => text
[bla2] => text
[bla3] => text
[bla4] => text )
)
nächstes array
[1] => Array
nächstes array
usw.
)
die foreach-schleife sieht so aus:
foreach($_SESSION['ausgabe'] as $key){
echo "<br>expnr: ".$key['bla1'];
echo "<br>expnr: ".$key['bla2'];
echo "<br>expnr: ".$key['bla3'];
if(isset($key['bla4'])){
foreach($key['bla4'] as $key){
printf("NR = %s",$key['NR']);
printf("%s %s %s",$key['bla1'], $key['bla2'], $key['bla3']);
}
}
if(isset($key['bla5'])){
foreach($key['bla5'] as $key){
if($key['ja'] == 1){
printf("<br>ja: NR = %s",$key['NR']);
}
if($key['nein'] == 1){
printf("<br>nein: NR = %s<br>",$key['NR']);
}
}
}
printf("%s %s %s %s<br><br><br>",$key['bla6']['NR'],$key['bla6']['bla1'],['bla6']['bla2'],$key['bla6']['bla3']);
}
jetzt meine frage:
warum wird mir nach der ersten foreach-schleife [bla4], [bla5] und [bla6] nicht mehr ausgegeben?
kommentiere ich die foreach-schleife [bla4] aus, wird [bla5] ausgeführt aber [bla6] nicht angezeigt.
wenn ich beide foreach-schleifen auskommentiere wird mir [bla6] aber angezeigt.
ich durchlaufe doch das array von [bla1] bis [bla6] der reihe nach, ich versteh das nicht.
bitte um hilfe
vielen dank im voraus für eure mühe
gruß Rüdiger
Hallo Rüdiger,
foreach($_SESSION['ausgabe'] as $key){
[...]
foreach($key['bla5'] as $key){
Du darfst nicht zweimal die gleichen Variablen verwenden (sonst überschreibst du die erste, und $key['bla5'] existiert nicht mehr) - verwende einfach eine andere Variable ...
Grüße aus Nürnberg
Tobias
hallo Tobias
vielen dank für die schnelle hilfe :-)
da hab ich den wald vor lauter bäume nicht gesehen :-(
gruß Rüdiger