Масивът, който се опитвате да предадете, е многоизмерен масив. Вместо това опитайте това:
$ids = array();
foreach ($query->result_array() as $id)
{
$ids[] = $id['id'];
}
$this->db->where_in('id', $ids);
Не можете да изравните заявката->result_array() без итерация. Но ако трябва да обработвате често този вид заявки в приложението си и ако имате инсталиран>=PHP 5.3, можете да поставите следната функция в помощен файл на Codeigniter (или някъде другаде подходящо), за да ви помогне да изравните масиви:
function flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
И във вашия случай го използвайте така:
$ids = flatten($query->result_array());
$this->db->where_in('id', $ids);