У меня есть HTML-форма, из которой я получаю Input, у меня есть файл PHP, который уже отправляет его в форму JSON. Но мне нужна идентификационная часть как идентификатор конкретного объекта. Я пробовал все известные способы, только закончил тем, что испортил код. Вот подробно объяснение:Изменить данные JSON с помощью PHP
JSON код # 1 [Что я получаю]
[
{
"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"
}
]
JSON код # 2 [Желаемая, что я хочу]
[
"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"
}
]
Это код PHP, который я использую для отправки данных формы в файл JSON.
$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. Любой подход к оптимизации существующего кода тоже будет оценен. . Благодаря^^
Объясните, что не работает. –
Идентификатор приходит как элемент в массиве, мне он нужен как идентификатор массива. Я не знаю, какие условия использовать, извините. –
То, чего вы желаете, не должно быть ... вы не можете иметь ассоциативные массивы в JSON. Вместо этого это будет объект. '[" 1 ": {...}, ...]' будет '{" 1 ": {...}, ...}' –