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);

preferences:
26.95 ms | 409 KiB | 5 Q