Начать с того, что на сервере результатом такого именования полей:
<input type="text" name="
name" id="firstOption" value="" >
....
<input type="text" name="
name" id="fifthOption" value="">
будет получено одно единственное значение - значение последнего поля. Для того чтобы получить все и под одним именем, это имя должно отражать массив:
<input type="text" name="
name[1][1]" id="firstOption" value="" >
....
<input type="text" name="
name[1][5]" id="fifthOption" value="">
Здесь каждому полю принудительно заданы индексы массива соответствующие ключам вопросов, а первичный ключ равен блоку вопросов (иначе можно было бы так name[]). Тогда получив поля формы "отредактировать" массив будет просто:
if(isset($_POST["name"])) {
$k = key($_POST['name']);
array_replace($question[$k]['answer'], $_POST['name'][$k]);
}
А что дальше? Если этот массив нужен на время сессии, то можно его хранить в сессии, но зачем тогда его править? Если же это "база" задач, значит хранить нужно в файле, а еще лучше в базе. Если в файле, то в JSON формате, но учитывать, что функции JSON работают только с utf.
Так что ваш скрипт вряд ли должен начинаться с
"есть массив заданий". Сперва надо это сделать, а уж затем чтобы "вылазило". )
PS. Идентификаторы в данном случае совсем не нужны, их используют по потребности, а не потому, что так положено.