PHP: Многомерный массив обрывается при достижении 334 элементов в себе

Рейтинг: 0Ответов: 1Опубликовано: 17.07.2023

Есть POST форма с таблицей содержащий в себе строку с двумя текстовыми полями на двух разных языках. В таблице может быть несколько тысяч строк.

<tbody>
<tr>
  <th scope="row"><input type="hidden" name="text[1][num]" value="1">1</th>
  <td><textarea name="text[1][tyv]">Текст 1</td>
  <td><textarea name="text[1][rus]">Текст 2</textarea></td>
</tr>
<tr>...<tr>
</tbody>

После нажатия на кнопку сохранения многомерный массив выводится нормально.

Array
(
    [num_start] => 1
    [text] => Array
        (
            [1] => Array
                (
                    [num] => 1
                    [tyv] => Текст 1
                    [rus] => Текст 2
                )

            [2] => Array
                (
                    [num] => 2
                    [tyv] => Текст 1
                    [rus] => Текст 2
                )

        )

    [btn-save-text] => 
)

Проблема заключается в том, что при достижении количества элементов в 334, то массив обрывается и не записывает далее значения.

Увеличивал memory_limit, но безрезультатно. Предполагаю, что решение проблемы в php.ini может быть. Заранее благодарю за любой ответ!

Ответы

▲ 5Принят

В php.ini стоит менять не memory_limit, а max_input_vars, которая отвечает за количество входных переменных, которое может принять сервер в одном запросе.

А вообще, если переменных много, то советую отправить данные через ajax POST запрос в виде одной json строки. Ну и на стороне сервера, соответственно, не забыть json строку перевести в массив.