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

如何使用PHP将查询返回的JSON数组键名替换为对应记录的id值

你原有代码的问题是修改了数组元素的值而非数组键,无法实现将默认数字索引替换为对应id值的需求,两种实现方案如下:

方案1:foreach遍历实现(兼容所有PHP版本)

$result = $db->run("SELECT * FROM.....")->fetchAll();
$newResult = [];
foreach ($result as $item) {
    $newResult[$item['id']] = $item;
}
// 后续直接使用$newResult即可

遍历原查询结果集,以每条数据的id字段作为新数组的键,完整的原始数据作为值存入新数组即可得到你需要的结构。

方案2:array_column 内置函数实现(PHP 5.5及以上版本支持,代码更简洁)

$result = $db->run("SELECT * FROM.....")->fetchAll();
$newResult = array_column($result, null, 'id');

array_column 第二个参数传入null表示保留完整的子数组内容,第三个参数传入id表示将每条数据的id字段作为新数组的键,一行代码即可完成转换。

注意:如果查询结果中存在id相同的记录,后出现的记录会覆盖先出现的记录,这是PHP数组键唯一性的正常逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:54:03