Вы можете использовать массивы в качестве имен полей с проверкой формы CI.
http://codeigniter.com/user_guide/libraries/form_validation.html#arraysasfields
То, что вам нужно сделать, это что-то вроде этого.
$this->form_validation->set_rules('data[]', 'Data', 'trim|xss_clean|required|max_length[50]');
if ($this->form_validation->run()) {
// DO INSERT
}
else
{
// LOAD VIEWS
}
Я почти уверен, что правила рекурсивно применяются к вашим данным, но я бы сделал несколько тестов, чтобы убедиться. Я пробовал это с различными типами полей (см. HTML ниже), и это работало по крайней мере для требуемого правила. (Это просто быстрый HTML, я бы использовал помощник по форме CI).
<input type="radio" value="Test data" name="data[]" />
<input type="radio" value=" More data " name="data[]" />
<input type="radio" value="3" name="data[]" />
<input type="input" value="" name="data[]" />
Это будет работать, только если все ваши правила одинаковы для каждого поля.