Можно, конечно же, но лучше сразу организовать связь один-ко-многим или многие-ко-многим. Делается через связывающую таблицу в которую заносится две (ну или другое нужное число записей) вида id_сущности_у_которой_проставлены_чекбоксы, id_чекбокса. И через join получать эти записи.
Экспортировать excel-файл в CSV и через консоль импортировать CSV в БД.
upd. Если нужно только средствами PHP, то можете использовать пакетное добавление. Это когда в одном INSERT перечисляется сразу данные для нескольких строк.
Проверить - никак.
Можно повесить в таблице на поле индекс UNIQUE и отключить прерывание импорта при возникновении ошибок.
Тогда в таблицу будут импортированы записи только записи с уникальным значением поля.
Вопрос в том нормально ли заходить в ветку по else (по условию счетчик нулевой) и потом внутри увеличивать его... а иначе как обрабатывать ошибки ?
Нормально. А почему нет? Это в цикле по массиву не рекомендуется изменять сам массив, а в if-ах - ради Будды.
Ну и вообще часто приходится писать что то типа: $x = ($x == 0) ? 15 : $x;
Что по сути одно и то же.