Испытываете трудности с изменением объекта JSON в скрипте PHP - PullRequest
1 голос
/ 24 апреля 2020

Привет, мы пытались создать игру для школьного проекта и не можем понять, как изменить код JSON с помощью PHP.

Вот код 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);

После завершения у нас теперь есть 0 впереди в файле JSON,

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

Мы хотим, чтобы код был без "0 "и существующие выигрышные карты с новым значением массива из скрипта PHP. После этого он размещается и полностью меняет файл JSON.

1 Ответ

0 голосов
/ 24 апреля 2020

Похоже, вы сохранили JSON в проигрывателе . json файл, подобный приведенному ниже формату,

воспроизведения. json

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

Затем вам нужно декодировать его как массив со вторым параметром json_decode() как true, что делает array текущим в вашем коде, и возвращается как object. Итак, давайте сделаем это так,

<?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;
?>

РАБОЧИЙ ДЕМО: https://3v4l.org/iCGtO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...