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

PHP数组元素移除问题:移除指定值后输出不符合预期

解决PHP移除数组元素后JSON结构不符合预期的问题

你的代码存在两个核心问题:

  1. 仅处理了done数组,但最终没有将原结构中的skip和left字段保留到输出中;
  2. 使用array_flip的方式移除元素后,数组索引变得不连续,json_encode会将其转换为带键名的对象而非纯数组。

以下是修正后的代码:

<?php 
include "db_connect.php";
$sql2 = "SELECT * FROM ads WHERE campaign_id=132";
$res2 = mysqli_fetch_assoc(mysqli_query($conn,$sql2));
$done = json_decode($res2["done_by"]); // 保留原有的完整对象结构

// 定义要移除的目标值
$target = 1670937087;
// 查找目标值在done数组中的索引
$index = array_search($target, $done->done);

// 找到索引后执行移除操作
if ($index !== false) {
    unset($done->done[$index]);
    // 重新索引数组,确保JSON输出为纯数组格式
    $done->done = array_values($done->done);
}

// 编码整个对象,保留done/skip/left的完整结构
$json = json_encode($done);
print($json);
?>

代码说明:

  • 直接操作原$done对象,无需额外拆分重组,确保保留skip和left字段;
  • 使用array_search精准定位要移除元素的索引,避免误操作;
  • array_values重新整理数组索引,让json_encode输出为连续索引的数组(而非带键名的对象);
  • 最终编码整个对象,输出结构与预期完全一致。

内容的提问来源于stack exchange,提问作者JOBIANS TECHIE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:30:52