所以我想在$this->db->where_not_in()
的第二个参数中使用一个数组。
我知道如果我有一个索引数组并像这样使用它,它会很好地工作:
$names = array('Frank', 'Todd', 'James');
$this->db->where_not_in('column', $names);
但是我的查询的输出数组看起来是这样的,所以我不能将其用于第二个参数where_not_in ()
:
Array (
[0] => Array (
[id_question] => PN21022601
)
[1] => Array (
[id_question] => PN21022602
)
)
我尝试使用array_values()
将它转换为索引数组,但它只是返回了与上面相同的结果。
我还通过尝试$query->result_array()
方法和$query->result()
方法阅读了Codeigniter 3的文档,结果是相同的。
我的期望是我可以生成这样的数组:
Array (
[0] => PN21022601
[1] => PN21022602
)
我错过什么了吗
这是我进行的mysql查询中的错误吗?尤其是在group by
语法方面
这是我的查询,以生成类似上面的数据:
$query = $this->db->query("
SELECT e.id_pertanyaan
FROM t_penilaian AS a
JOIN t_penilaian_detail AS b ON a.id_penilaian = b.id_penilaian
JOIN t_penilaian_detail_score AS c ON b.id_penilaian_detail = c.id_penilaian_detail
JOIN m_pertanyaan_detail AS d ON c.id_pertanyaan_detail = d.id_pertanyaan_detail
JOIN m_pertanyaan AS e ON d.id_pertanyaan = e.id_pertanyaan
WHERE a.id_user = '$id_user'
GROUP BY e.id_pertanyaan");
这是一个创建数据库的示例脚本。和DB Designer快速查看关系
谢谢你的帮助。。
使用您的查询返回如下数组:
$results = $this->db->result_array();
将结果作为数组而不是对象,您可以将其中一列作为具有数组列的普通数组。
$results = array_column($this->db->result_array(), 'id_question');
这样,结果将完全符合您的要求。
有关数组列的更多信息,请点击此处:
您可以使用类似array_map的php函数来处理以下特定情况:
$newArr = array_map(function($val){
return $val['id_question'];
},$results);
这应该会给你所需的结果