私がやろうとしているのは、ユーザー名が一致するインデックスで JSON 配列の値を置き換えることです。どうすればこれを行うことができますか?以下は、私の試用版 PHP コードと JSON です。array_replace を使用するのが最善の方法ですか、それとも別の方法で行う必要がありますか?
<?php
$user_with_game = file_get_contents("oneuser.json");//$_POST["userGames"];
//$user_with_game = stripslashes ($JSON);
$user_decoded_JSON = json_decode($user_with_game, true);
$JSON = file_get_contents("users.json");
$decoded_JSON = json_decode($JSON, true);
//print_r ($user_decoded_JSON);
foreach ($decoded_JSON['Users'] as $key => $value)
{
if ( $value['username'] == $user_decoded_JSON['username'])
{
$decoded_JSON['Users'] = array_replace($decoded_JSON['Users'], $user_decoded_JSON);
}
}
//print_r ($decoded_JSON);
$encoded_JSON = json_encode( $decoded_JSON);
echo $encoded_JSON;
?>
**users.json**
{
"Users":[
{
"password":"glass",
"gamelist":[
{
"platform":"xbox-360",
"game":"bioshock infinite"
},
{
"platform":"xbox-360",
"game":"tomb raider"
}
],
"username":"dorinayres",
"reviewerlist":[
]
},
{
"password":"happy",
"gamelist":[
{
"platform":"xbox-360",
"game":"far cry 3"
},
{
"platform":"xbox-360",
"game":"terraria"
}
],
"username":"ian",
"reviewerlist":[
]
}
]
}
**oneuser.json**
{
"password":"glass",
"gamelist":[
{
"platform":"xbox-360",
"game":"bioshock infinite"
},
{
"platform":"xbox-360",
"game":"tomb raider"
}
],
"username":"dorinayres",
"reviewerlist":[
]
}