使用PHP从文件中删除非唯一JSON对象

时间:2018-03-25 11:39:12

标签: php json

我在使用PHP从JSON文件中删除对象时遇到了问题。

下面的代码应该获取当前用户ID,检查JSON文件中是否已存在该用户ID,如果确实存在,则在写入新记录之前删除旧记录。如果用户ID是唯一的,则数据应该作为新对象附加到文件(此部分有效)。

这是我的PHP:

//new user id
$user_id = $uvon;

//problem here
$fileContent = file_get_contents($filetxt_1);
$jsonDecode = json_decode($fileContent, true);

foreach($jsonDecode->$user_id as $id)
  if (id == "$user_id")
  {
    unset($user_id);
  }
//

//write new object
$myObj=new stdClass();
$myObj->$user_id = new stdClass();
$myObj->$user_id->wallet_address = $walletaddress;
$myObj->$user_id->time_stamp = time();
$myJSON = json_encode($myObj, JSON_UNESCAPEDUNICODE | JSON_UNESCAPED_SLASHES | JSON_NEMERIC_CHECK | JSON_PRETTY_PRINT);
file_put_contents($filetxt_1, $myJSON, FILE_APPEND);

这是我的JSON输出。

我在用户ID对象中嵌套了与用户ID相关的信息,因为我认为这样可以更容易地删除与ID相关的记录(搜索ID和删除父对象意味着任何子元素也会被销毁? )。

用户ID只能有一组数据,但正如您所看到的,数据只是随意附加。

{
"77.104.149.212": {
    "wallet_address": "0x5895311d3D45FD29b8254b27Da9837478b560290",
    "time_stamp": 1521975950
}
}{
"77.104.149.212": {
    "wallet_address": "0x5895311d3D45FD29b8254b27Da9837478b560290",
    "time_stamp": 1521976301
    }
}

非常感谢任何帮助。希望我能很好地解释自己。

提前致谢。

0 个答案:

没有答案