Использование квадратных скобок в скрытых вводных полях HTML

Я анализирую чужой PHP-код, и я заметил, что входной HTML имеет много скрытых полей ввода с именами, которые заканчиваются на «[]», например:

<input type="hidden" name="ORDER_VALUE[]" value="34" /> <input type="hidden" name="ORDER_VALUE[]" value="17" /> 

Страница PHP, обрабатывающая этот вход, получает каждое значение следующим образом:

 foreach ($_REQUEST["ORDER_VALUE"] as $order_value) { /... } 

Для чего используется «[]»? Укажите, что будет несколько полей ввода с тем же именем?

Да. В основном PHP будет знать, что все эти значения с одним и тем же именем будут привязаны к массиву.

Это относится ко всем полям ввода, кстати, не только к скрытым.

Он передает данные как массив в PHP. Когда у вас есть HTML-формы с тем же именем, они будут добавляться в списки запятой, такие как списки флажков. Здесь PHP имеет обработку для преобразования этого в массив PHP на основе [] следующим образом:

Чтобы получить результат, отправленный в виде массива на ваш PHP-скрипт, вы назовете его или такие элементы:

 <input name="MyArray[]" /> <input name="MyArray[]" /> <input name="MyArray[]" /> <input name="MyArray[]" /> 

Обратите внимание на квадратные скобки после имени переменной, вот что делает его массивом. Вы можете группировать элементы в разные массивы, назначая одно и то же имя различным элементам:

 <input name="MyArray[]" /> <input name="MyArray[]" /> <input name="MyOtherArray[]" /> <input name="MyOtherArray[]" /> 

Это создает два массива, MyArray и MyOtherArray, которые отправляются на PHP-скрипт. Также возможно назначить определенные ключи для ваших массивов:

 <input name="AnotherArray[]" /> <input name="AnotherArray[]" /> <input name="AnotherArray[email]" /> <input name="AnotherArray[phone]" /> 

http://us2.php.net/manual/en/faq.html.php

См. Как создать массивы в HTML <form> ? в FAQ PHP .

Большинство библиотек обработки форм ожидают, что автор укажет, хотят ли они обрабатывать кусок данных в виде строки или массива строк.

Авторы PHP решили быть несовместимыми с остальным миром и требуют, чтобы HTML был сконструирован специально.

Помещение квадратных скобок в конце имени говорит PHP, чтобы рассматривать его как массив данных.