变换 Json 数组
Transform Json Array
我有一个 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();
我有一个 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();