如何将项目添加到json文件格式的数组
问题描述:
我仅使用1个数据插入json文件中.
I am using using just 1 data to insert in my json file.
$data=$_POST['myusernamer'];
$inp = file_get_contents('7players.json');
$tempArray = json_decode($inp);
array_push($tempArray, $data);
$jsonData = json_encode($tempArray);
file_put_contents('7players.json', $jsonData);
这就是我的json文件的外观.我只想在末尾添加1个播放器.
So this is how my json file looks. I just want to add 1 player at the end.
{
"players":[
{
"name":"Moldova",
"image":"/Images/Moldova.jpg",
"roll_over_image":"tank.jpg"
},
{
"name":"Georgia",
"image":"/Images/georgia.gif",
"roll_over_image":"tank.jpg"
},
{
"name":"Belarus",
"image":"/Images/Belarus.gif",
"roll_over_image":"tank.jpg"
},
{
"name":"Armenia",
"image":"/Images/armenia.png",
"roll_over_image":"tank.jpg"
},
{
"name":"Kazahstan",
"image":"/Images/kazahstan.gif",
"roll_over_image":"tank.jpg"
},
{
"name":"Russia",
"image":"/Images/russia.gif",
"roll_over_image":"tank.jpg"
},
],
"games" : [
{
"matches" : [
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":7,
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
}
]
},
{
"matches" : [
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":7,
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
{
"player1id":"*",
"player2id":"*",
"winner":"*"
},
]
}
]
}
我的问题是,如何在最后添加播放器?而且我也想知道如何更新
My question is, how do I add player at the end? And I would also like to know how to update
player1id":"*",
"player2id":"*",
"winner":"
在匹配数组中.
答
只需解码json字符串,然后使用数组推送
Just decode your json string and then use array push
$tempArray = json_decode($jsonstring, true);
array_push($tempArray, $your_data);
根据您的情况
$str = '{
"players":[
{
"name":"Moldova",
"image":"/Images/Moldova.jpg",
"roll_over_image":"tank.jpg"
},
{
"name":"Georgia",
"image":"/Images/georgia.gif",
"roll_over_image":"tank.jpg"
} ]}';
$arr = json_decode($str, true);
$arrne['name'] = "dsds";
array_push( $arr['players'], $arrne );
print_r($arr);
仅检查print_r($ arr);的值;我希望这就是你想要的. :)
Just check value of print_r($arr); I hope this is what you want. :)