3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json = '{"id":1,"name":"john","member":[{"id":9,"name":"jane","member":[]},{"id":10,"name":"lorem","member":[{"id":12,"name":"ipsum","member":[{"id":99,"name":"dolor","member":[]},{"id":109,"name":"sit","member":[{"id":999,"name":"rose","member":[]}]}]}]}]}'; $raw = json_decode($json, true); //var_dump($raw); function outputSubmenu($items) { echo '<ul>'; foreach ($items as $data) { echo '<li>'; echo $data['name']; if (count($data['member'])) { outputSubmenu($data['member']); } echo '</li>'; } echo '</ul>'; } echo outputSubmenu([$raw]);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
<ul><li>john<ul><li>jane</li><li>lorem<ul><li>ipsum<ul><li>dolor</li><li>sit<ul><li>rose</li></ul></li></ul></li></ul></li></ul></li></ul>

preferences:
128.19 ms | 402 KiB | 121 Q