3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json_response = <<<DATA [{ "INDEX_ID": "0", "NOTES": "0; Farming" }, { "INDEX_ID": "1", "NOTES": "Fruit Name; List of Fruits;" }, { "INDEX_ID": "2", "NOTES": "Apple" }, { "INDEX_ID": "3", "NOTES": "Orange" }, { "INDEX_ID": "4", "NOTES": "Grapes" }, { "INDEX_ID": "5", "NOTES": "Mango" }, { "INDEX_ID": "6", "NOTES": "Animal Name; List of Animal;" }, { "INDEX_ID": "7", "NOTES": "Pig" }, { "INDEX_ID": "8", "NOTES": "Goat" }, { "INDEX_ID": "9", "NOTES": "Cow" }] DATA; $response_body = json_decode($json_response, true); $currKey = "0"; $response_body = array_reduce($response_body, function ($carry, $item) use (&$currKey){ if (strpos($item['NOTES'], 'Name; List') !== false) { $currKey = strtoupper(explode(" ", $item["NOTES"], 2)[0]); return $carry; } $carry[$currKey][] = ["FRUITS" => $item["NOTES"]]; return $carry; }); $result = [ [ "NOTE_NO" => "001", "CATEGORY" => ($name = "FRUITS"), "LISTS_TO_BUY" => $response_body["FRUIT"] ] ]; echo json_encode($result, JSON_PRETTY_PRINT);
Output for 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 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
[ { "NOTE_NO": "001", "CATEGORY": "FRUITS", "LISTS_TO_BUY": [ { "FRUITS": "Apple" }, { "FRUITS": "Orange" }, { "FRUITS": "Grapes" }, { "FRUITS": "Mango" } ] } ]

preferences:
127.69 ms | 408 KiB | 5 Q