在PHP中搜索JSON数组

时间:2016-02-04 08:26:18

标签: php

如果我添加一个php脚本来创建一个具有如下唯一ID的JSON数组:

ORDER BY quiz_test.program_id DESC

当我想使用其他表单重新更新时,如何搜索JSON数组并获取唯一ID?

2 个答案:

答案 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);

 ?>