首页 > 解决方案 > 如何在 PHP 中将新记录添加到多维数组中?

问题描述

我想在“投票”部分添加一个新条目:

["blue",[true, false]] 
{   "votes":[
     ["white",[true, true]],
     ["green",[true, false]]
   ],
   "config":{
      "title":"TEST",
      "options":[
         "first",
         "second"
      ]
   }
}

我的代码:

$jsonString = file_get_contents('./data/'.$_GET['id']);
$data = json_decode($jsonString, true);

// insert a new record
$data[] = array("votes" => "blue",true, true);

$newJsonString = json_encode($data);
file_put_contents('./data/'.$_GET['id'], $newJsonString);

新记录只会附加到 JSON 数组中。如何在“投票”部分下获得新条目?

标签: php

解决方案


您的代码段不起作用,因为您正在尝试将新值添加到根节点中。此外,您在votes节点内的布尔值有错字

您应该votes像这样选择节点:

$jsonString = file_get_contents('./data/'.$_GET['id']);
$data = json_decode($jsonString, true);

// insert a new record into votes node
$data['votes'][] = ["blue", [true, true]];

$newJsonString = json_encode($data);
file_put_contents('./data/'.$_GET['id'], $newJsonString);

推荐阅读