首页 > 解决方案 > 如何在php中转换json响应的格式

问题描述

我使用数组在 for 循环中获取数据,我得到 json 响应,例如

 "subscription_id": [
        [ {
                "subscription_id": "25",
                "venue_id": "21"
            }
        ],
        [
            {
                "subscription_id": "26",
                "venue_id": "3"
            }
        ],
    ],

但我想要这样的回应

"subscription_id": [
            {
                "subscription_id": "25",
                "venue_id": "21"
            },
            {
                "subscription_id": "26",
                "venue_id": "3"
            },
    ],

标签: phpjson

解决方案


您可以按照以下方式进行操作:

$json_response = '{
    "subscription_id":
    [
        [
            {
            "subscription_id": "25",
            "venue_id": "21"
            }
        ],
        [
            {
            "subscription_id": "26",
            "venue_id": "3"
            }
        ]
    ]

}';

$decode_json_response = json_decode($json_response, true);

foreach ($decode_json_response as $key => $values) {
   foreach ($values as $k => $v) {
       $new['subscription_id'][] = $v[0];
   }
}

$final_output = json_encode($new);

根据需要输出:

{
    "subscription_id": [
        {
            "subscription_id": "25",
            "venue_id": "21"
        },
        {
            "subscription_id": "26",
            "venue_id": "3"
        }
    ]
}

推荐阅读