CodeIgniter中如何在foreach内仅循环list字段生成多维数组
问题原因
你当前的写法将完整JSON结构的初始化、编码输出逻辑全部放在了foreach循环内部,每遍历一条数据就会生成一整个独立的JSON并输出,最终就会出现多个JSON拼接的错误结果。同时你定义list字段时额外嵌套了一层数组结构,也不符合预期格式要求。
修复方案
将固定结构的初始化放在循环外,循环过程中仅向list字段追加单条数据,循环结束后统一执行JSON编码输出即可。
修正后的代码如下:
// 循环外初始化完整结构,固定字段直接赋值 $arrayName = [ 'page' => $this->input->get('type', TRUE), 'list' => [] // 初始化list为空数组 ]; // 循环仅处理list字段的内容追加 foreach ($row as $rows) : $arrayName['list'][] = [ 'title' => $rows['title'] ]; endforeach; // 全部数据组装完成后统一输出JSON echo json_encode($arrayName);
内容的提问来源于stack exchange,提问作者wiihii
相关产品推荐
相关产品推荐

