Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP脚本中修改JSON对象有困难_Php_Arrays_Json_For Loop - Fatal编程技术网

在PHP脚本中修改JSON对象有困难

在PHP脚本中修改JSON对象有困难,php,arrays,json,for-loop,Php,Arrays,Json,For Loop,大家好,我们一直在尝试为一个学校项目创建一个游戏,但我们不知道如何通过PHP修改JSON代码 下面是我们制作的PHP代码,用于从键修改对象的值 $json_object = file_get_contents('players.json'); $data = json_decode($json_object); foreach($data as $key) { $data['winning_cards'] = [1,2,3]; }

大家好,我们一直在尝试为一个学校项目创建一个游戏,但我们不知道如何通过PHP修改JSON代码

下面是我们制作的PHP代码,用于从键修改对象的值

    $json_object = file_get_contents('players.json');
    $data = json_decode($json_object);

    foreach($data as $key)
    {
        $data['winning_cards'] = [1,2,3];
    }
    $json_object = json_encode($data);
    file_put_contents('players.json', $json_object);
完成后,JSON文件前面有0

{"0":{"username":"test_username","character":"TEST","position":"6","current_turn":false,"cards":[],"winning_cards":[]},"winning_cards":[1,2,3]}

我们希望代码没有“0”和现有的带有PHP脚本中新数组值的获奖卡。它随后被放置并完全更改JSON文件。

似乎您已将JSON存储在player.JSON文件中,格式如下所示

playes.json

[{"username":"test_username","character":"TEST","position":"6","current_turn":false,"cards":[],"winning_cards":[]}]
然后,您需要将其解码为一个数组,第二个参数为
json_decode()
true
,使
数组当前作为
对象返回。所以让我们这样做

<?php
$json_object = '[{"username":"test_username","character":"TEST","position":"6","current_turn":false,"cards":[],"winning_cards":[]}]';
$data = json_decode($json_object,true); # see the 2nd parameter
foreach($data as $key=>$value)
{
    $data[$key]['winning_cards'] = [1,2,3];
}
$json_object = json_encode($data);
echo $json_object;
?>


工作演示:

似乎您已将JSON存储在player.JSON文件中,格式如下:

playes.json

[{"username":"test_username","character":"TEST","position":"6","current_turn":false,"cards":[],"winning_cards":[]}]
然后,您需要将其解码为一个数组,第二个参数为
json_decode()
true
,使
数组当前作为
对象返回。所以让我们这样做

<?php
$json_object = '[{"username":"test_username","character":"TEST","position":"6","current_turn":false,"cards":[],"winning_cards":[]}]';
$data = json_decode($json_object,true); # see the 2nd parameter
foreach($data as $key=>$value)
{
    $data[$key]['winning_cards'] = [1,2,3];
}
$json_object = json_encode($data);
echo $json_object;
?>


工作演示:

在修改JSON之前它是什么样子的?@Dave2kool4skool你检查过我的答案了吗?这对你有帮助吗?在你修改JSON之前它是什么样子的?@Dave2kool4skool你检查过我的答案了吗?这对你有帮助吗?