用php追加嵌套JSON数组

用php追加嵌套JSON数组,php,json,multidimensional-array,Php,Json,Multidimensional Array,我在一个文件中有一个嵌套的json数组,如下所示: { "id": 12345679, "gid": 6012, "history": [ { "date": "0000-00-00 00:00:00", "rank": 6 } ]} 我很好奇如何读取json文件并用php附加历史数组,然后重新编写名为data.json的文件 这就是我到目前为止得到的 $json = file_get_contents('data.json'); $json =

我在一个文件中有一个嵌套的json数组,如下所示:

{
"id": 12345679,
"gid": 6012,
"history": [
    {
        "date": "0000-00-00 00:00:00",
        "rank": 6
    }
]}
我很好奇如何读取json文件并用php附加历史数组,然后重新编写名为data.json的文件

这就是我到目前为止得到的

$json = file_get_contents('data.json');
$json = (array)json_decode($json);
$output = $json['history'][] = array(
    array('date' => '0000-00-00 00:00:00', 'rank' => 3),
    array('date' => '0000-00-00 00:00:00', 'rank' => 2),
    array('date' => '0000-00-00 00:00:00', 'rank' => 6)
);

  $data = json_encode(array_marge($json, $output));

谢谢你的帮助

您当前正在附加一个由三个子阵列组成的块。您要做的是分别进行以下操作:

$json['history'][] = array('date' => '0000-00-00 00:00:00', 'rank' => 3);
$json['history'][] = array('date' => '0000-00-00 00:00:00', 'rank' => 2);
$json['history'][] = array('date' => '0000-00-00 00:00:00', 'rank' => 6);
然后将其用作
$output

或者,用于将三个条目列表添加到输入
$json[“history”]
。但不要像上次尝试的那样合并两个数组
$json
$output