Преобразовать массив Json

У меня есть 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.

0

Решение

Это кажется довольно простым:

$data = json_decode($json, true);

collect($data)
->mapWithKeys(function ($item) {
return [$item['number'] => [json_encode($item)]];
})
->toArray();
5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector