-2
Iは、以下のJSONを有する:再構築ネストされた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"
}]
}
Iはfilaria
とpatient_test_analysis
データは、対応するgid
値のサブアレイになるようにキー名gid
に基づいて、このJSONを再構築する必要があり、
{
"upload_status": {
"1481279304461": {
"filaria": [{
"status": "Success",
"test_id": "3519710705971061481279327210"
}],
"patient_test_analysis": [{
"status": "Success",
"test_id": "3519710705971061481279327210"
}]
},
"1481279342277": {
"filaria": [{
"status": "Success",
"test_id": "3519710705971061481279364547"
}],
"patient_test_analysis": [{
"status": "Success",
"test_id": "3519710705971061481279364547"
}]
}
}
}
各サブアレイには、"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);
を私は出力以下の取得:第二gid
における余分な間接レベルで
{
"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"
}
}
}
}
}
を。
どこが間違っているのか分かりません。
おかげトン!!。キーと値に大きな括弧を使用する理由を少し詳しく説明できますか? – user375947