我正在嘗試使用 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;
}
}
- 1 回答
- 0 關注
- 171 瀏覽
添加回答
舉報
0/150
提交
取消