Pole, které se pokoušíte předat, je vícerozměrné pole. Místo toho zkuste toto:
$ids = array();
foreach ($query->result_array() as $id)
{
$ids[] = $id['id'];
}
$this->db->where_in('id', $ids);
Dotaz->result_array() nemůžete sloučit bez iterace. Pokud ale ve své aplikaci potřebujete hodně zpracovávat tento druh dotazů a máte nainstalované>=PHP 5.3, můžete do pomocného souboru Codeigniter (nebo někam jinam, kde je to vhodné), vložit následující funkci, která vám pomůže se zploštěním polí:
function flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
A ve vašem případě to použijte takto:
$ids = flatten($query->result_array());
$this->db->where_in('id', $ids);