用PHP修改JSON数据
我有一个HTML表单,我从中接收输入,我有一个PHP文件,它已经将其发布到JSON表单。但我需要ID部分作为特定对象的标识符。我尝试了所有已知的方法,结果只是把代码搞乱了。下面是一个详细的解释: JSON代码#1[我得到的]用PHP修改JSON数据,php,json,Php,Json,我有一个HTML表单,我从中接收输入,我有一个PHP文件,它已经将其发布到JSON表单。但我需要ID部分作为特定对象的标识符。我尝试了所有已知的方法,结果只是把代码搞乱了。下面是一个详细的解释: JSON代码#1[我得到的] [ { "id": "1", "name": "aaa", "doctor": "Doctor #1", "appointment": "13:03",
[
{
"id": "1",
"name": "aaa",
"doctor": "Doctor #1",
"appointment": "13:03",
"date": "1998-12-15"
},
{
"id": "2",
"name": "bbb",
"doctor": "Doctor #2",
"appointment": "14:14",
"date": "2016-05-31"
}
]
[
"1": { //The ID #1
"name": "aaa",
"doctor": "Doctor #1",
"appointment": "13:03",
"date": "1998-12-15"
},
"2": { //The ID #2
"name": "bbb",
"doctor": "Doctor #2",
"appointment": "14:14",
"date": "2016-05-31"
}
]
JSON代码#2[需要,我需要]
[
{
"id": "1",
"name": "aaa",
"doctor": "Doctor #1",
"appointment": "13:03",
"date": "1998-12-15"
},
{
"id": "2",
"name": "bbb",
"doctor": "Doctor #2",
"appointment": "14:14",
"date": "2016-05-31"
}
]
[
"1": { //The ID #1
"name": "aaa",
"doctor": "Doctor #1",
"appointment": "13:03",
"date": "1998-12-15"
},
"2": { //The ID #2
"name": "bbb",
"doctor": "Doctor #2",
"appointment": "14:14",
"date": "2016-05-31"
}
]
这是我用来将表单数据发布到JSON文件的PHP代码。
$filetxt = 'JSON URL';
$formdata = array(
'id'=> $_POST['id'],
'name'=> $_POST['name'],
'doctor'=> $_POST['doctor'],
'appointment'=> $_POST['appointment'],
'date'=> $_POST['date'],
);
// path and name of the file
$filetxt = 'PATH_OF_THE_FILE';
$arr_data = array(); // to store all form data
if(file_exists($filetxt)) {
$jsondata = file_get_contents($filetxt);
$arr_data = json_decode($jsondata, true);
}
$arr_data[] = $formdata;
$jsondata = json_encode($arr_data, JSON_PRETTY_PRINT);
if(file_put_contents('appointments.json', $jsondata))
include('URL');
else include('URL2');
}
请帮助我了解PHP代码部分。任何优化现有代码的方法都将受到欢迎。谢谢^。^您必须为此创建嵌套数组: 看一看:
$newArr[$_POST['id']] = array(
'name' => $_POST['name'],
'doctor' => $_POST['doctor'],
'appointment' => $_POST['appointment'],
'date' => $_POST['date'],
);
您需要更改代码,如下所示:
$formdata = array(
$_POST['id'] => array(
'name'=> $_POST['name'],
'doctor'=> $_POST['doctor'],
'appointment'=> $_POST['appointment'],
'date'=> $_POST['date'],
)
);
解释什么不起作用。ID作为数组中的一个元素出现,我需要它作为数组的标识符。对不起,我不知道该用什么术语。你想要的东西不应该是。。。JSON中不能有关联数组。它将成为一个对象<代码>[“1”:{…},…]将是
{“1”:{…},…}