У меня есть JSON, как это извлекается моей моделью:
[
{
"type": "seat",
"number": 4
},
{
"type": "seat",
"number": 8
},
{
"type": "seat",
"number": 12
},
{
"type": "seat",
"number": 16
}
]
Однако из-за плохо написанного кода в API, с которым я работаю, мне нужно, чтобы приведенный выше json выглядел так:
{
"4" : [ "{\"number\":\"4\",\"type\":\"seat\"}" ],
"8" : [ "{\"number\":\"8\",\"type\":\"seat\"}" ],
"12" : [ "{\"number\":\"12\",\"type\":\"seat\"}" ],
"16" : [ "{\"number\":\"16\",\"type\":\"seat\"}" ]
}
Я хотел бы знать, как я могу преобразовать первый пример, чтобы он выглядел как второй пример с использованием коллекций в laravel.
Это кажется довольно простым:
$data = json_decode($json, true);
collect($data)
->mapWithKeys(function ($item) {
return [$item['number'] => [json_encode($item)]];
})
->toArray();
Других решений пока нет …