如果我添加一个php脚本来创建一个具有如下唯一ID的JSON数组:
ORDER BY quiz_test.program_id DESC
当我想使用其他表单重新更新时,如何搜索JSON数组并获取唯一ID?
答案 0 :(得分:1)
您不应将JSON对象附加到文件中。当您读入文件时,您将无法分辨一个对象的结束位置和下一个对象的开始位置。
相反,您应该将所有对象放入一个数组中,并将整个数组写入该文件。当你想要添加一个对象时,你会读取文件,解码JSON,将一个新元素推送到数组上,然后将其写回。
$entries = json_decode(file_get_contents($file), true);
$postArray = array(
"input_ID" => date('s'),
"input1" => $input1,
"input2" => $input2
);
$entries[] = $postArray;
$json = json_encode($entries);
file_put_contents($file, $json);
如果要在文件中查找特定条目,请循环访问条目:
$entries = json_decode(file_get_contents($file), true);
foreach ($entries as $e) {
if ($e['input_ID'] == $input_id) {
$found_entry = $e;
break;
}
}
答案 1 :(得分:0)
<?php
$file = 'entries.json';
//First, you need to decode it :
$jsonString = file_get_contents($file);
$data = json_decode($jsonString, true);
$data[0]['input1'] = "TENNIS";
$data[0]['input2'] = "Outdoor game";
// or if you want to change all entries with input_ID "1"
foreach ($data as $key => $entry) {
if ($entry['input_ID'] == '1') {
$data[$key]['input1'] = "TENNIS";
$data[$key]['input2'] = "Outdoor game";
}
}
//Then re-encode it and save it back in the file:
$newJsonString = json_encode($data);
file_put_contents($file, $newJsonString);
?>