You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP删除JSON编码数组中的指定值 现有代码不生效如何解决

PHP删除JSON数组指定元素问题修复

原有代码的问题

  • 遍历数组时未获取对应键名:foreach($decode as $post) 只拿到了数组的值,没有拿到外层的键(也就是示例里的1、2、3),固定写unset($decode[1])只会删除键为1的元素,无法删除符合条件的对应元素
  • 没有将修改后的数组重新写入JSON文件:仅修改了内存中的$decode变量,没有同步更新到test.json文件,运行后原文件自然没有变化
  • 存在语法错误:第一个foreach循环缺少闭合的大括号
  • 冗余逻辑:$post[0]本身就是字符串格式的fileid,不需要强转数组遍历,属于无效代码

修复后的完整代码

<?php
$filename = "test.json";
// 读取JSON文件内容,比fgets更稳妥不会漏读
$jsonContent = file_get_contents($filename);
$decode = json_decode($jsonContent, true);

// 遍历的时候同时获取键和值
foreach($decode as $key => $post){
    $dif = time() - $post[1];
    if($dif > 5){
        // 输出对应的fileid
        echo $post[0].'<br>';
        // 删除符合条件的对应键的元素
        unset($decode[$key]);
    }
}

// 将修改后的数组重新编码为JSON写回文件
file_put_contents($filename, json_encode($decode));
?>

注意事项

  • 如果JSON数据里的time不是Unix时间戳格式,需要先将其转换为时间戳再做差值计算
  • 要保证test.json文件有可写权限,否则写回操作会失败

内容的提问来源于stack exchange,提问作者Dinesh chandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:36:04