Входные массивы HTML

<input name="foo[]" ... > 

Я использовал их раньше, но мне интересно, как это называется, и если есть спецификация для этого?

Я не мог найти его в спецификации HTML 4.01 и результаты в различных результатах Google только называют его «массивом» вместе со многими примерами PHP обработки данных формы.

В комментариях к этой странице на PHP.net есть несколько ссылок и указателей:

Торстен говорит

«Раздел C.8 руководящих принципов совместимости спецификации XHTML применим к использованию атрибута name в качестве идентификатора фрагмента. Если вы проверите DTD, вы обнаружите, что атрибут« name »по-прежнему определяется как CDATA для элементов формы».

Джетбой говорит

"в соответствии с этим: http://www.w3.org/TR/xhtml1/#C_8 тип атрибута name был изменен в XHTML 1.0, что означает, что квадратные скобки в атрибуте имени XHTML недопустимы.

Независимо от того, на момент написания, валидатор W3C не выбирает это на документе XHTML ».

Я думаю, что это просто PHP, а не HTML.

Он анализирует все поля HTML с [] в массив.

Таким образом, вы можете

 <input type="checkbox" name="food[]" value="apple" /> <input type="checkbox" name="food[]" value="pear" /> <input type="checkbox" name="food[]" value="banana" /> 

и когда он будет представлен, PHP будет создавать $ _POST ['food'] массив, и вы можете получить доступ к его элементам следующим образом:

 echo $_POST['food'][0]; // would output first checkbox selected 

или для просмотра всех выбранных значений:

 foreach( $_POST['food'] as $v ) { print $v; } 

Во всяком случае, не думайте, что для этого есть определенное имя

Насколько я знаю, в спецификациях HTML нет ничего, потому что браузеры не должны делать что-то другое для этих полей. Они просто отправляют их, как обычно, и PHP – это тот, который выполняет синтаксический анализ в массиве, как и другие языки.

Следуйте за ним …

 <form action="index.php" method="POST"> <input type="number" name="array[]" value="1"> <input type="number" name="array[]" value="2"> <input type="number" name="array[]" value="3"> <!--taking array input by input name array[]--> <input type="number" name="array[]" value="4"> <input type="submit" name="submit"> </form> <?php $a=$_POST['array']; echo "Input :" .$a[3]; // Displaying Selected array Value foreach ($a as $v) { print_r($v); //print all array element. } ?>