3v4l.org

run code in 300+ PHP versions simultaneously
<?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);
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
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" } }

preferences:
125.1 ms | 409 KiB | 5 Q