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

CodeIgniter中如何从查询返回的二维数组提取id值赋值给变量?

问题根因

你调用result_array()方法返回的是查询结果集合的二维数组结构,哪怕查询仅返回1条结果,也会在外层包裹一层索引为0的数组,你输出的print_r结果也能看出结构:外层是索引数组,第一个元素才是存id的关联数组,所以直接用$get_src['id']无法读取到对应值。


解决方案

方案1:直接按现有结构取值

如果你的查询逻辑确定只会返回1条结果,直接读取第一层索引0下的id字段即可,修改数组赋值代码:

// 原写法 'fsource'=> $get_src
// 改为
'fsource'=> $get_src[0]['id']

稳妥起见可以加非空判断,避免查询无结果时报数组索引不存在错误:

$source_id = isset($get_src[0]['id']) ? $get_src[0]['id'] : 0; // 0可替换为你业务中的默认无效值
$post = array('fstatus'=> $status,'fsource'=> $source_id);

方案2:简化查询返回结构,直接获取单条数据

如果你的查询本来就是取单条匹配结果,可以直接把result_array()替换为CodeIgniter提供的row_array()方法,该方法会直接返回第一条结果的一维关联数组,不需要再额外取索引0:

// 修改模型调用行的返回方法
$content['getsource'] = $this->leads_model->get_selected_source($source)->row_array();
$get_src = $content['getsource'];
// 此时就可以直接读取id字段
$post = array('fstatus'=> $status,'fsource'=> $get_src['id']);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:57:04