Если в запросе участвует только один столбец:
$people = array('Иван Иваныч', 'Сергей Сергеич', 'Сидор Сидорович');
// INSERT INTO `organization` (`name`) VALUES (?), (?), (?)
$query = "INSERT INTO `organization` (`name`) VALUES "
. implode(', ', array_fill(0, sizeof($people), '(?)'));
$pdo->prepare($sql)->execute($people);
Пример для трёх столбцов:
$people = array(
array('Иван Иваныч', 'Москва', 23),
array('Сергей Сергеич', 'Тула', 42),
array('Сидор Сидорович', 'Псков', 30),
);
// Приводим массив к виду:
// array('Иван Иваныч', 'Москва', 23, 'Сергей Сергеич', 'Тула', 42, 'Сидор Сидорович', 'Псков', 30);
$values = array();
foreach ($people as $p) {
$values = array_merge($values, $p);
}
// Создаём строку вида (?, ?, ?)
$placeholders = '(' . implode(', ', array_fill(0, 3, '?')) . ')';
// INSERT INTO `organization` (`name`, `city`, `age`) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?)
$query = "INSERT INTO `organization` (`name`, `city`, `age`) VALUES "
. implode(', ', array_fill(0, sizeof($people), $placeholders));
$pdo->prepare($sql)->execute($values);