渡そうとしている配列は多次元配列です。代わりにこれを試してください:
$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);