渡そうとしている配列は多次元配列です。代わりにこれを試してください:
$ids = array(); foreach ($query->result_array() as $id) { $ids[] = $id['id']; } $this->db->where_in('id', $ids);
反復なしでquery->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);