我的模型正在检索这样的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 :(得分:5)
这似乎很简单:
$data = json_decode($json, true);
collect($data)
->mapWithKeys(function ($item) {
return [$item['number'] => [json_encode($item)]];
})
->toArray();