为了账号安全,请及时绑定邮箱和手机立即绑定

通过 key 从 json 文件中删除一个项目

通过 key 从 json 文件中删除一个项目

PHP
浮云间 2023-07-30 13:11:46
我正在尝试使用 id 属性匹配从 json 文件中删除项目。我真正需要的未设置是什么?Json data:{"memory":[{"id":1,"pinned":false,"title":"my title","author":"me"},  {"id":2,"pinned":false,"title":"my title","author":"me"}]}$projectsArr = json_decode(file_get_contents("../db/memory.json"), true);if(isset($_POST['subDelete'])) { $selectedIitemId = $_POST["subDelete"];  foreach($projectsArr['memory'] as &$mydata) {    if($mydata['id'] == $selectedIitemId) {      // unset ?      $save = json_encode($projectsArr,JSON_UNESCAPED_UNICODE);      file_put_contents('../db/memory.json', $save);      header('LOCATION:approve.php');    }  }}
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

unset()此代码使用与数组本身 ( )匹配和使用的条目的索引$projectsArr['memory']。此外,由于这会留下一个缺少条目的数组(这将导致其保存为对象),因此它会array_values()在保存数据之前重置键。


foreach($projectsArr['memory'] as $key => $mydata) {

    if($mydata['id'] == $selectedIitemId) {

        unset($projectsArr['memory'][$key]);

        $projectsArr['memory'] = array_values($projectsArr['memory']);

        $save = json_encode($projectsArr,JSON_UNESCAPED_UNICODE);

        file_put_contents('../db/memory.json', $save);

        header('LOCATION:approve.php');

        exit;

    }

}


查看完整回答
反对 回复 2023-07-30
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信