【发布时间】:2019-11-23 14:09:02
【问题描述】:
我是 PHP 和 JSON 的新手,我正在尝试使用 php 在运行时向 json 文件添加属性。
例如,json目前看起来是这样的:
[
{
"name":"john"
},
{
"name": "james"
}
]
然后我希望能够(使用 php)引用该文件并按如下方式对其进行更改:
[
{
"name":"john",
"Round1Prediction":"7"
},
{
"name": "james"
}
]
目前,当我得到 json 的内容时:
$jsonPlayers = json_decode($strJsonFileContents, true);
var_dump($jsonPlayers); // print array
输出如下:
array(4)
{
[0]=> array(1){
["name"]=>string(1) "q"
}
[1]=> array(1){
["name"]=>string(1) "w"
}
[2]=> array(1){
["name"]=>string(1) "e"
}
[3]=> array(1){
["name"]=>string(2) "rt"
}
}
可视化我想做的事情(通过手动输入): 数组(4)
{
[0]=> array(1){
["name"]=>string(1) "q"
["Round1Prediction"]=>string(1) "5"
}
[1]=> array(1){
["name"]=>string(1) "w"
}
[2]=> array(1){
["name"]=>string(1) "e"
}
[3]=> array(1){
["name"]=>string(2) "rt"
}
}
那么我将如何将额外的物品推入?我试过这个...:
$input = array($attrName => $value);
$newjsonPlayers = array_push($jsonPlayers[0], $input);
...以及其他几次不成功的尝试。任何人都可以帮忙吗?我确实尝试过格式化这个问题,以便更容易理解,但如有必要,可以尝试解释更多。
tldr 我试图将一个关联数组推入另一个,我该怎么做呢?有没有替代的方法?有没有可能?
非常感谢。
【问题讨论】:
-
你应该可以直接设置它而不是把值压进去——试试
$jsonPlayers[0][$attrName] = $value; -
@NigelRen 非常感谢!
标签: php json multidimensional-array associative-array