php json 转换

    {
        "a1": {
            "price": {
                "high": 4.68,
                "low": 3.75,
                "code": 1
            }
        },
        "a2": {
            "price": {
                "high": 2.77,
                "low": 2.29,
                "code": 1
            }
        }
    }

    现有上面的json,怎么把它转换一下变成下面的格式:
{

    "china": {
        "cny": {
            "a1": {
                "high": 111,
                "low": 66
            },
            "a2": {
                "high": 44,
                "low": 22
            }
        }
    }

}


    

我的想法是先提取原有的json,因为原有的json可能格式不一样的,然后统一转化成下面的格式, foreach 搞不出来。

阅读 2.5k
1 个回答
$jsonStr = <<<CODE
    {
        "a1": {
            "price": {
                "high": 4.68,
                "low": 3.75,
                "code": 1
            }
        },
        "a2": {
            "price": {
                "high": 2.77,
                "low": 2.29,
                "code": 1
            }
        }
    }
CODE;

$nativeArray = json_decode($jsonStr, true);
$data = array();
foreach ($nativeArray as $key => $item) {
    unset($item['price']['code']);
    $data['china']['cny'][$key] = $item['price'];
}
echo json_encode($data);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题