Ваша проблема действительно в вашем цикле: for($i=0;$i<=count($request['sno']);$i++)
.
Чтобы быть конкретным, это прямо здесь <=
:
$i<=count()
^^
Посмотрите на ваш массив:
[
0 => "1"
1 => "2"
2 => "3"
]
Вы получили 3
объектов. Следовательно, count($request['sno'])
вернет 3, поскольку функция count()
не начинает отсчет с 0
!
Однако при вызове индекса (например, $request['sno'][1]
) не возвращает первый объект (0 => "1"
), а второй (1 => "2"
). Я думаю, вы видите, куда я иду.
Поскольку цикл будет продолжаться до тех пор, пока $i
не будет равен 3
, цикл будет выполнен 4 раза. В последний раз (где $i == 3
) вы пытаетесь извлечь 4-й элемент из вашего массива, который не существует, поэтому появляется сообщение об ошибке: Undefined offset: 3
.
Чтобы решить эту проблему, просто измените это
$i<=count()
^^
до <
. Цикл будет выполняться только в том случае, если $i
еще меньше, чем 3
. Это тот случай, если $i == 2
. Сообщение об ошибке не появится.
Я не хочу ни на что нападать или причинять вам боль, но мне кажется, что вы относительно новичок в PHP. Конечно, это не позор, но мне интересно, подходит ли вам такой огромный каркас, как Laravel. Сначала основы, затем продвинутые.
Но это всего лишь небольшой комментарий и совет от меня.