Imagine you have an array of HTML elements (in their appearance order) as
$array = array(
1=>array( 'level' => 1, 'element' => '<div class="parent">'),
2=>array( 'level' => 2, 'element' => '<div class="child">'),
3=>array( 'level' => 3, 'element' => '<span class="child2">'),
4=>array( 'level' => 2, 'element' => '<div class="child">'),
5=>array( 'level' => 2, 'element' => '<div class="child">'),
6=>array( 'level' => 3, 'element' => '<span class="child2">'),
7=>array( 'level' => 4, 'element' => '<span class="child3">'),
);
How do you plan a foreach loop to find the places of the closing HTML tags to output a string as
<div class="parent">
<div class="child">
<span class="child2">
<span>
</div>
<div class="child">
</div>
<div class="child">
<span class="child2">
<span class="child3">
</span>
</span>
</div>
</div>
My attempt was something like
foreach($array as $e){
echo $e['element'];
$level = $e['level'];
if($level<=$previous_level) {
echo $closing;
$closing = '';
}
$closing.= '</'. $element . '>'; // which comes from parsed $e['element'];
$previous_level = $level;
}