Php 重新构造嵌套的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",

我有以下JSON:

{
    "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);