Arrayen du försöker passera är en flerdimensionell array. Prova istället detta:
$ids = array();
foreach ($query->result_array() as $id)
{
$ids[] = $id['id'];
}
$this->db->where_in('id', $ids);
Du kan inte platta till query->result_array() utan iteration. Men om du behöver hantera den här typen av frågor mycket i din applikation, och om du har>=PHP 5.3 installerat, kan du lägga in följande funktion i en Codeigniter-hjälpfil (eller någon annan lämplig plats) för att hjälpa dig att platta arrayer:
function flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
Och i ditt fall använd det så här:
$ids = flatten($query->result_array());
$this->db->where_in('id', $ids);