3v4l.org

run code in 300+ PHP versions simultaneously
<?php $resultset = [ ["id" => "1", "cityId" => "1", "cityName" => "Bengaluru", "runId" => "2", "distance" => "10k", "status" => "1"], ["id" => "2", "cityId" => "1", "cityName" => "Bengaluru", "runId" => "1", "distance" => "5k", "status" => "1"], ["id" => "3", "cityId" => "1", "cityName" => "Bengaluru", "runId" => "5", "distance" => "3k", "status" => "0"], ["id" => "4", "cityId" => "2", "cityName" => "Chennai", "runId" => "1", "distance" => "5k", "status" => "1"], ["id" => "5", "cityId" => "2", "cityName" => "Chennai", "runId" => "2", "distance" => "10k", "status" => "1"], ["id" => "6", "cityId" => "2", "cityName" => "Chennai", "runId" => "4", "distance" => "15k", "status" => "1"] ]; foreach ($resultset as $row) { if (!isset($result[$row["cityId"]])) { $result[$row["cityId"]] = array("id" => $row["id"], "cityId" => $row["cityId"], $row["cityName"] => array(array_slice($row,-3))); } else { $result[$row['cityId']][$row["cityName"]][] = array_slice($row,-3); } } $result = array("status" => true, "runsBasedOnCity" => array_values($result)); var_export(json_encode($result, JSON_PRETTY_PRINT));
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.34, 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.26, 8.4.1 - 8.4.13
'{ "status": true, "runsBasedOnCity": [ { "id": "1", "cityId": "1", "Bengaluru": [ { "runId": "2", "distance": "10k", "status": "1" }, { "runId": "1", "distance": "5k", "status": "1" }, { "runId": "5", "distance": "3k", "status": "0" } ] }, { "id": "4", "cityId": "2", "Chennai": [ { "runId": "1", "distance": "5k", "status": "1" }, { "runId": "2", "distance": "10k", "status": "1" }, { "runId": "4", "distance": "15k", "status": "1" } ] } ] }'

preferences:
182.38 ms | 411 KiB | 5 Q