3v4l.org

run code in 300+ PHP versions simultaneously
<?php $citiesJson = <<<JSON [{"id":"AA0","name":"Aalen","region":"Süden","state":"Baden-Württemberg"}, {"id":"AB0","name":"Aschaffenburg","region":"Mitte","state":"Bayern"}, {"id":"AC0","name":"Aachen","region":"Westen","state":"Nordrhein-Westfalen"}, {"id":"WIT","name":"Witten","region":"Westen","state":"Nordrhein-Westfalen"}, {"id":"DN0","name":"Düren","region":"Westen","state":"Nordrhein-Westfalen"}] JSON; $cities = json_decode($citiesJson, true); $cities = array_map(function(array $city) { $city['city_region_state'] = sprintf( '%s, %s, %s', $city['name'], $city['region'], $city['state'] ); return $city; }, $cities); $citiesByState = array_reduce($cities, function(array $found, array $city) { $found[$city['state']][] = $city; return $found; }, []); echo json_encode($citiesByState, JSON_PRETTY_PRINT);
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.27, 8.4.1 - 8.4.14
{ "Baden-W\u00fcrttemberg": [ { "id": "AA0", "name": "Aalen", "region": "S\u00fcden", "state": "Baden-W\u00fcrttemberg", "city_region_state": "Aalen, S\u00fcden, Baden-W\u00fcrttemberg" } ], "Bayern": [ { "id": "AB0", "name": "Aschaffenburg", "region": "Mitte", "state": "Bayern", "city_region_state": "Aschaffenburg, Mitte, Bayern" } ], "Nordrhein-Westfalen": [ { "id": "AC0", "name": "Aachen", "region": "Westen", "state": "Nordrhein-Westfalen", "city_region_state": "Aachen, Westen, Nordrhein-Westfalen" }, { "id": "WIT", "name": "Witten", "region": "Westen", "state": "Nordrhein-Westfalen", "city_region_state": "Witten, Westen, Nordrhein-Westfalen" }, { "id": "DN0", "name": "D\u00fcren", "region": "Westen", "state": "Nordrhein-Westfalen", "city_region_state": "D\u00fcren, Westen, Nordrhein-Westfalen" } ] }

preferences:
124.85 ms | 410 KiB | 5 Q