2016-01-20 135 views
1

我有一个json格式,并希望将其转换为我自定义的格式。请帮助我使用PHP进行此转换。请帮助我,我如何构建上面提到的JSON数组格式。这里是我的格式:将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" 
}] 
} 

而想要这样的格式:

{ 
"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" 
    }] 
}] 
} 
+0

从你在哪里得到这个JSON? – AnkiiG

+0

得到一个MySQL查询 –

+0

你会分享该代码@deepakbhardwaj – AnkiiG

回答

1

您可以使用简单的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" 
     }] 
    }] 
} 
+0

如何转换此JSON [{“label”:“Food&Drinks”,“data”:“2”},{“label”:“Lifestyle”, “数据”:“1”}]到[[“食品和饮料”,2],[“生活方式”,1]]使用php –

+0

请在SO –

+0

上发布新问题http://stackoverflow.com/questions/ 35269178 /如何对转换-JSON-字符串到阵列中的PHP –