jquery - 如何将json数组更改为另一种格式
问题描述
我有一个 JSON 数组,我需要将其更改为另一种数组格式。请查看以下数组,
我的数组是,
Array{
BUS NO.1:
Array{
0:{trip: "Trip00011", runningKm: "5000"}
1:{trip: "Trip00012", runningKm: "2565"}},
BUS NO.2:
Array{
0:{trip: "Trip00021", runningKm: "2400"}
1:{trip: "Trip00023", runningKm: "1500"}
2:{trip: "Trip00025", runningKm: "3000"}}
}
我需要,
data :[{y:BUS NO.1, "Trip00011": "5000","Trip00012":"2565"},
{y:BUS NO.2, "Trip00021": "2400","Trip00023":"1500","Trip00025":"3000"},
解决方案
试试这个。您只需要 1 个循环和一个 array_merge。
$originalData = [
[
'vehicle' => 'BUS NO.1',
'trip_name' => 'Trip00011',
'running_km' => '5000'
],
[
'vehicle' => 'BUS NO.2',
'trip_name' => 'Trip00021',
'running_km' => '2400'
],
[
'vehicle' => 'BUS NO.2',
'trip_name' => 'Trip00023',
'running_km' => '1500'
],
];
$responseData = [];
foreach ($originalData as $od){
$temp = [
'y' => $od['vehicle'],
];
$temp[$od['trip_name']] = $od['running_km'];
if (!isset($responseData[$od['vehicle']])){
$responseData[$od['vehicle']] = $temp;
} else {
$responseData[$od['vehicle']] = array_merge($responseData[$od['vehicle']], $temp);
}
}
echo json_encode(array_values($responseData));
输出(JSON):[{"y":"BUS NO.1","Trip00011":"5000"},{"y":"BUS NO.2","Trip00021":"2400","Trip00023":"1500"}]
推荐阅读
- node.js - 在插入 Node.js 时获取已连接 USB 驱动器的挂载路径
- swift - 如何从 UserDefaults 向数组添加值?
- c# - 来自 LINQ Select 的复杂 IEnumerable 结果
- javascript - 如何使用延迟函数以相反的顺序显示圆圈(使用 JSON 数据创建)?
- android - 片段内带有缓存的 Webview
- c# - “IEntityType”不包含“关系”的定义
- python - 使用牛顿拉夫森方法求根
- r - 应用函数 R 中的 if-else 语句
- arrays - 如何在 Tiled 中使用 userData 进行碰撞?(LigGDX)
- javascript - Discord.js 角色/分级系统