Какая именно ошибка? В версиях РНР до 5.4 нельзя объявлять массив как [], только array(). А вообще это лучше так записать:
if( $_POST['set'] && $data = array_filter(array_map('intval', $_POST['set']), function($v) {
return $v;
})) {
//массив $data будет содержать все значения выбранные во всех списках
echo '<pre>' . print_r($data, 1) . '</pre>'; //это вывод чисто для посмотреть
}
Вот только чему в базе все это записываться будет, это вопрос.