Hey,
ich habe nachfolgende Datenstruktur in einer Aufgabenstellung gegeben und soll diese Struktur wieder zusammensetzen anhand der diversen Marken wie z.B.
[Wohnzimmer]
Dabei soll ich mich aber nicht auf diesen Fall nur beschränken, d.h. es allgemeingültig halten
Datenstruktur
Bild
Bislang bin ich soweit:
Meine erhaltene Ausgabe ist:
Und hier sieht man das Problem auch, ich scheitere daran die Marke [Haus] mit dem entsprechenden Block auszutauschen.
Wenn ich den rekursiven Aufruf nach vorne verlagere wird das ganze in umgekehrter Reihenfolge ausgegeben, was ich vermutlich auch tun muss.
Soweit ich das verstehe muss ich irgendwie den inneren Block mit der Marke im äusseren Block vertauschen.....
Aber das bekomm ich nicht hin
ich habe nachfolgende Datenstruktur in einer Aufgabenstellung gegeben und soll diese Struktur wieder zusammensetzen anhand der diversen Marken wie z.B.
[Wohnzimmer]
Dabei soll ich mich aber nicht auf diesen Fall nur beschränken, d.h. es allgemeingültig halten
Datenstruktur
Bild
Bislang bin ich soweit:
PHP-Code:
function merge($start_block)
{
$block = $start_block;
if($block['name'] == 'root')
{
echo $block['name']."\n";
$c_tpl = $block['code'];
}
/*
echo "<pre>";
print_r($block);
echo "</pre>";
*/
if(isset($block['nested']))
{
foreach($block['nested'] as $subblock)
{
echo $subblock['name']."\n";
$c_tpl = preg_replace( sprintf($this->bl_pattern,$subblock['name']),$subblock['code'],$c_tpl );
$this->merge($subblock);
}
}
return $c_tpl;
}
Code:
root Haus Wohnzimmer Schrank Safe Schlafzimmer Hallo ich bin Max Mustermann und zeige Ihnen nun mein Haus [Haus]
Wenn ich den rekursiven Aufruf nach vorne verlagere wird das ganze in umgekehrter Reihenfolge ausgegeben, was ich vermutlich auch tun muss.
Soweit ich das verstehe muss ich irgendwie den inneren Block mit der Marke im äusseren Block vertauschen.....
Aber das bekomm ich nicht hin
![Frown](https://www.php-resource.de/forum/core/images/smilies/frown.gif)
Kommentar