3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json = '{ "world": { "france": { "city": { "city_1": { "name": "paris", "titre": "lorem ipsum" }, "city_2": { "name": "marseille", "titre": "dolor sit amet" } } }, "usa": { "city": { "city_1": { "name": "new york", "titre": "lorem ipsum" }, "city_2": { "name": "los angeles", "titre": "lorem ipsum" }, "city_3": { "name": "portland", "titre": "lorem ipsum" } } } } }'; $data = json_decode($json, true); $options = []; foreach ($data['world'] as $country => ['city' => $cities]) { $options[] = sprintf( '<option data-city="%s">%s</option>', implode(',', array_column($cities, 'name')), $country ); } echo implode("\n", $options);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
<option data-city="paris,marseille">france</option> <option data-city="new york,los angeles,portland">usa</option>

preferences:
120.02 ms | 407 KiB | 5 Q