3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $str = "<div class='room'> <h1>This is a h1</h1> <p>This is a Paragraph</p> <h2>This is h2</h2> </div> <div class='room2'> <h1>This is a h1</h1> <p>This is a Paragraph</p> <h2>This is h2</h2> </div>"; $arr = explode(PHP_EOL, $str); $res =array(); Foreach($arr as $row){ If(strpos($row, "div") !== False){ $pos1 = strpos($row, "'")+1; $room = substr($row, $pos1, strpos($row, "'", $pos1)-$pos1); }Else{ $pos1 = strpos($row, "<")+1; $res[$room][substr($row, strpos($row, "<")+1, strpos($row, ">")-$pos1)] = trim(strip_tags($row)); } } Var_dump($res);
based on aolYj
Output for 5.6.0 - 5.6.30, hhvm-3.15.4, 7.0.0 - 7.2.6
array(2) { ["room"]=> array(3) { ["h1"]=> string(12) "This is a h1" ["p"]=> string(19) "This is a Paragraph" ["h2"]=> string(10) "This is h2" } ["room2"]=> array(3) { ["h1"]=> string(12) "This is a h1" ["p"]=> string(19) "This is a Paragraph" ["h2"]=> string(10) "This is h2" } }