$myArray = implode($myArray, ',');
$sth = $dbh->prepare('SELECT foo FROM bar WHERE ids IN (:ids)');
$result = $sth->fetch();
You can't bind a parameter for the IN clause like that. The $myArray string will only count as one value, like if you did this:
SELECT foo FROM bar WHERE ids IN ('1,2,3')
Even though there are three comma delimited values, the database reads them as only one string value.
You need to manually insert the IN list into the query, the old-school way.
'SELECT foo FROM bar WHERE ids IN (' . $myArray .')'
There is unfortunately no other way. At least for now.