To není možné, jak to zkoušíte. Pro každý parametr, který chcete předat, musíte mít samostatný zástupný symbol, vše ostatní by odporovalo účelu parametrů (který odděluje kód od dat).
$ids = array(2, 4, 6, 8);
// prepare a string that contains ":id_0,..,:id_n" and include it in the SQL
$plist = ':id_'.implode(',:id_', array_keys($ids));
$sql = "SELECT * FROM someTable WHERE someId IN ($plist)";
// prepare & execute the actual statement
$parms = array_combine(explode(",", $plist), $ids);
$stmt = $PDO->prepare($sql);
$rows = $stmt->execute($parms);
Pokud by vám bylo povoleno předat pole hodnot jednomu parametru během vazby, bylo by vám umožněno měnit příkaz SQL. To by byla mezera pro SQL injection - nic by nemohlo zaručit, že všechny hodnoty pole budou nevinná celá čísla.