Това не е възможно по начина, по който го опитвате. Трябва да имате отделен заместител за всеки параметър, който искате да предадете, всичко останало би се противопоставило на целта на параметрите (която е разделянето на кода от данните).
$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);
Ако ви е било разрешено да предадете масив от стойности към един параметър по време на свързването, на практика ще ви бъде позволено да промените SQL израза. Това би било вратичка за SQL инжектиране – нищо не може да гарантира, че всички стойности на масива ще бъдат невинни цели числа, все пак.