Globale array mit foreach schachteln

ich hab ein problem bei folgender schachtelung

global $sitemodule;
// get all Output module
// get all Output jedem Modul
foreach ($sitemodule as $modul) {
 if ($modul[output] != "") {
 $modulouts=array();
 $modulouts = explode ( "|", $modul[output] );
 foreach ($modulouts as $outmodule) {
**$website[body].=$modul[$outmodule];**
 }
 }
}

wenn ich anstatt

**$website[body].=$modul[$outmodule];**

aber

**$website[body].=$sitemodule[logon][$outmodule];**

einsetze geht es

das untere funktioniert , nur eben nicht für alle module sondern nur für [logon]

foreach ($sitemodule as $modul) {
 if ($modul[output] != "") {
 $modulouts=array();
 $modulouts = explode ( "|", $modul[output] );
 foreach ($modulouts as $outmodule) {
**$website[body].=$sitemodule[logon][$outmodule];**
 }
 }
}

ergo
$sitemodule[logon][output] hat die werte, und die gibt es auch.
$modulouts hat auch 2 werte .

Frage : warum will er das in der inneren foreach nicht nehmen, bzw seh ich mein fehler nicht ?

Nachtrag: aber eine schlechte lösung
gehen tut

**$website[body].=$sitemodule[$modul[modul]][$outmodule];**

was ich aber total blöde finde und immernoch nicht begreife …

dummerweise hab ich mit array_push gearbeitet was ja für assoziative arrays nix bringt :smile: