Mảng bạn cố gắng vượt qua là một mảng nhiều chiều. Thay vào đó, hãy thử điều này:
$ids = array();
foreach ($query->result_array() as $id)
{
$ids[] = $id['id'];
}
$this->db->where_in('id', $ids);
Bạn không thể làm phẳng truy vấn-> result_array () mà không lặp lại. Nhưng nếu bạn cần phải xử lý nhiều loại truy vấn này trong ứng dụng của mình và nếu bạn đã cài đặt> =PHP 5.3, bạn có thể đặt hàm sau vào tệp trợ giúp Codeigniter (hoặc một nơi nào khác phù hợp) để giúp bạn làm phẳng các mảng:
Hàmfunction flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
Và trong trường hợp của bạn, hãy sử dụng nó như thế này:
$ids = flatten($query->result_array());
$this->db->where_in('id', $ids);