如何将项添加到json文件格式化数组
16lz
2021-01-22
I am using using just 1 data to insert in my json file.
我只使用1个数据插入我的json文件。
$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);
So this is how my json file looks. I just want to add 1 player at the end.
所以这就是我的json文件的样子。我只想在最后添加1个玩家。
{
"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":"
in the match array.
在匹配数组中。
3 个解决方案
#1
10
Just decode your json string and then use array push
只需解码您的json字符串,然后使用数组推送
$tempArray = json_decode($jsonstring, true);
array_push($tempArray, $your_data);
For your case
对于你的情况
$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);
Just check value of print_r($arr); I hope this is what you want. :)
只需检查print_r($ arr)的值;我希望这就是你想要的。 :)
更多相关文章
- 为什么foreach在循环中不修改数组时要复制数组?(复制)
- 从数组php获得第一个非空值。
- 如何实现分布式文件上传解决方案?
- phpstorm取消自动保存并标识修改的文件为星星标记
- 迭代XML元素并将元素推送到数组中
- 学习成绩统计-【数组操作】
- PHP内爆不适用于大数组?
- 在HTTP 1.0中,状态码401的含义是什么;如果返回“找不到文件”的提
- thinkphp整合系列之tcpdf类生成pdf文件