Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将json格式转换为其他数组类型json格式_Php_Json - Fatal编程技术网

Php 将json格式转换为其他数组类型json格式

Php 将json格式转换为其他数组类型json格式,php,json,Php,Json,我有一个json格式,希望将其转换为我的自定义格式。请帮助我使用PHP进行此转换。请帮助我,我如何构建上述JSON数组格式。以下是我的格式: { "success": true, "code": 601, "u_id": "9", "h_id": "5", "data": [{ "mp_cat": "Conveyance", "mp_id": "5", "mp_rating": "4", "mp_price": "630.00" }, { "mp_cat"

我有一个json格式,希望将其转换为我的自定义格式。请帮助我使用PHP进行此转换。请帮助我,我如何构建上述JSON数组格式。以下是我的格式:

{
"success": true,
"code": 601,
"u_id": "9",
"h_id": "5",
"data": [{
    "mp_cat": "Conveyance",
    "mp_id": "5",
    "mp_rating": "4",
    "mp_price": "630.00"
}, {
    "mp_cat": "Food & Drinks",
    "mp_id": "3",
    "mp_rating": "4",
    "mp_price": "104.55"
}, {
    "mp_cat": "Food & Drinks",
    "mp_id": "4",
    "mp_rating": "3",
    "mp_price": "450.00"
}]
}
想要这种格式:

 {
"success": true,
"code": 601,
"u_id": "9",
"h_id": "5",
"category": [{
    "Name": "Food & Drinks",
    "data": [{
        "mp_cat": "Food & Drinks",
        "mp_id": "3",
        "mp_rating": "4",
        "mp_price": "104.55"
    }, {
        "mp_cat": "Food & Drinks",
        "mp_id": "4",
        "mp_rating": "3",
        "mp_price": "450.00"
    }]
}, {
    "Name": "Conveyance",
    "data": [{
        "mp_cat": "Conveyance",
        "mp_id": "5",
        "mp_rating": "4",
        "mp_price": "630.00"
    }]
}]
}

您可以使用简单的foreach循环来构造数据,或者重新格式化json。 将以下解决方案的外观减半:

$json = '{
"success": true,
"code": 601,
"u_id": "9",
"h_id": "5",
"data": [{
    "mp_cat": "Conveyance",
    "mp_id": "5",
    "mp_rating": "4",
    "mp_price": "630.00"
}, {
    "mp_cat": "Food & Drinks",
    "mp_id": "3",
    "mp_rating": "4",
    "mp_price": "104.55"
}, {
    "mp_cat": "Food & Drinks",
    "mp_id": "4",
    "mp_rating": "3",
    "mp_price": "450.00"
}]
}';

$json_array = json_decode($json, true);
$new_array = array();
$category_array = array();
foreach($json_array as $key => $array){
    if($key == 'data'){
        foreach($array as $a){
            $category_array[$a['mp_cat']]['name']= $a['mp_cat'];
            $category_array[$a['mp_cat']]['data'][]= $a;
        }
    } else{
        $new_array[$key] = $array;
    }
}

$new_array['category'] = array_values($category_array);
echo json_encode($new_array);
输出:

{
    "success": true,
    "code": 601,
    "u_id": "9",
    "h_id": "5",
    "category": [{
        "name": "Conveyance",
        "data": [{
            "mp_cat": "Conveyance",
            "mp_id": "5",
            "mp_rating": "4",
            "mp_price": "630.00"
        }]
    }, {
        "name": "Food & Drinks",
        "data": [{
            "mp_cat": "Food & Drinks",
            "mp_id": "3",
            "mp_rating": "4",
            "mp_price": "104.55"
        }, {
            "mp_cat": "Food & Drinks",
            "mp_id": "4",
            "mp_rating": "3",
            "mp_price": "450.00"
        }]
    }]
}

从何处获取此json?从mysql查询获取该代码@deepakbhardwajHow将此json[{“标签”:“食品和饮料”,“数据”:“2”},{“标签”:“生活方式”,“数据”:“1”}]转换为[[“食品和饮料”,“2”;“生活方式”,1]],请使用phpp发布一个新问题