Php 重新构造嵌套的JSON数据
我有以下JSON:Php 重新构造嵌套的JSON数据,php,json,Php,Json,我有以下JSON: { "filaria": [{ "user_input_test_result": "", "test_id": "3519710705971061481279327210", "gid": "1481279304461" }, { "user_input_test_result": "", "test_id": "3519710705971061481279364547",
{
"filaria": [{
"user_input_test_result": "",
"test_id": "3519710705971061481279327210",
"gid": "1481279304461"
}, {
"user_input_test_result": "",
"test_id": "3519710705971061481279364547",
"gid": "1481279342277"
}],
"patient_test_analysis": [{
"test_id": "3519710705971061481279327210",
"gid": "1481279304461"
}, {
"test_id": "3519710705971061481279364547",
"gid": "1481279342277"
}]
}
每个子数组还必须添加一个“status”:“Success”
元素
我编写了以下代码以获得输出:
$jsonArray = json_decode($json, true);
$arrayStatus = array();
foreach ($jsonArray as $key => $value) {
$key; $inc = 0 ;
for($i=0;$i<count($value);$i++){
$patient_id = $value[$i]['gid'];
$s = $inc++;
$arrayStatus[$patient_id][$key][$s]['status'] = "Success";
$arrayStatus[$patient_id][$key][$s]['test_id'] = 'xxx';
}
}
$results = array();
$results['upload_status'] = $arrayStatus;
echo $resArr = json_encode($results);
$jsonArray=json\u decode($json,true);
$arrayStatus=array();
foreach($jsonArray作为$key=>$value){
$key;$inc=0;
对于($i=0;$i请尝试以下方法:
$jsonArray = json_decode($json, true);
$arrayStatus = array();
foreach ($jsonArray as $key => $value) {
$key; $inc = 0 ;
for($i=0;$i<count($value);$i++){
$patient_id = $value[$i]['gid'];
$s = $inc++;
//Avoid array indexs
$arrayStatus[$patient_id][$key][] = ['status' => "Success", 'test_id' => 'xxx'];
}
}
$results = array();
$results['upload_status'] = $arrayStatus;
echo $resArr = json_encode($results);
$jsonArray=json\u decode($json,true);
$arrayStatus=array();
foreach($jsonArray作为$key=>$value){
$key;$inc=0;
对于($i=0;$i“成功”、'test_id'=>'xxx'];
}
}
$results=array();
$results['upload_status']=$arrayStatus;
echo$resArr=json_encode($results);
非常感谢。!!您能再解释一下为什么在键和值中使用大括号吗。
{
"upload_status": {
"1481279304461": {
"filaria": [{
"status": "Success",
"test_id": "3519710705971061481279327210"
}],
"patient_test_analysis": [{
"status": "Success",
"test_id": "3519710705971061481279327210"
}]
},
"1481279342277": {
"filaria": {
"1": {
"status": "Success",
"test_id": "3519710705971061481279364547"
}
},
"patient_test_analysis": {
"1": {
"status": "Success",
"test_id": "3519710705971061481279364547"
}
}
}
}
}
$jsonArray = json_decode($json, true);
$arrayStatus = array();
foreach ($jsonArray as $key => $value) {
$key; $inc = 0 ;
for($i=0;$i<count($value);$i++){
$patient_id = $value[$i]['gid'];
$s = $inc++;
//Avoid array indexs
$arrayStatus[$patient_id][$key][] = ['status' => "Success", 'test_id' => 'xxx'];
}
}
$results = array();
$results['upload_status'] = $arrayStatus;
echo $resArr = json_encode($results);