查询的result_array()给出以下内容:
Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 4 ) )
我想在OR条件的where子句中使用id = 1和id = 4,如下所示:
$this->db->where_in('id',$query->result_array());
但上述原因导致错误。有没有直接的方法来做同样的事情?
答案 0 :(得分:1)
答案 1 :(得分:1)
$result = $roleIdQuery->result_array();
$column = array_map(function($sub)
{
return $sub['id'];
}, $result);
我用过这个。不幸的是
答案 2 :(得分:0)
因为它在该数组中有数组。
$ids=array();
$resultArray=$query->result_array();
foreach($resultArray as $result){
$ids[]=$result['id'];
}
$ ids //这就是你现在需要传递的内容..
答案 3 :(得分:0)
如果您更改原始查询以使用GROUP_CONCAT。不是Active Record中的选项,因此需要编写自己的SQL。
之类的东西$query= $this->db->query('SELECT GROUP_CONCACT(id) AS ids FROM table WHERE condition=true');
然后你应该能够做到
$this->db->where_in('id',$query->result_array()[0]['ids']);
刚刚注意到你的5.3,不幸的是,这意味着你将不得不这样做。
$result = $query->result_array();
然后传入$result[0]['ids']