Det array, du forsøger at passere, er et multidimensionelt array. Prøv i stedet dette:
$ids = array(); foreach ($query->result_array() as $id) { $ids[] = $id['id']; } $this->db->where_in('id', $ids);
Du kan ikke udjævne query->result_array() uden iteration. Men hvis du har brug for at håndtere denne slags forespørgsler meget i din applikation, og hvis du har>=PHP 5.3 installeret, kan du indsætte følgende funktion i en Codeigniter-hjælpefil (eller et andet passende sted) for at hjælpe dig med at udfladning af arrays:
function flatten(array $array) { $return = array(); array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; }); return $return; }
Og i dit tilfælde brug det sådan her:
$ids = flatten($query->result_array()); $this->db->where_in('id', $ids);