如何将查询结果中GROUP_CONCAT返回的逗号分隔member_id字段转为数组
解决方案
你只需要在返回查询结果前,遍历每一条数据,用explode方法把逗号分隔的member_id字符串拆分为数组即可,修改后的代码如下:
function my_data() { $this->db->select('project.*,GROUP_CONCAT(member_id) AS member_id'); $this->db->from('project'); $this->db->group_by("project.project_id"); $this->db->join('project_meta', 'project.project_id = project_meta.project_id', 'left'); $query = $this->db->get(); $result = $query->result_array(); foreach ($result as $index => $project) { // 处理空值场景,避免拆分报错 if (empty($project['member_id'])) { $result[$index]['member_id'] = []; continue; } $memberIdArr = explode(',', $project['member_id']); // 如果你需要数组下标从1开始和示例格式完全匹配,保留下面两行即可 array_unshift($memberIdArr, ''); unset($memberIdArr[0]); $result[$index]['member_id'] = $memberIdArr; } return $result; }
内容的提问来源于stack exchange,提问作者gading rengga
相关产品推荐
相关产品推荐

