我正在分析其他人的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) {
/...
}
'[]'用于什么?指定会有多个具有相同名称的输入字段?
答案 0 :(得分:14)
它将数据作为数组传递给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]" />
答案 1 :(得分:11)
是。基本上PHP会知道将所有这些具有相同名称的值粘贴到数组中。
顺便说一下,这适用于所有输入字段,而不仅仅是隐藏字段。
答案 2 :(得分:3)
答案 3 :(得分:1)
大多数表单处理库都希望作者说明他们是想将一段数据视为字符串还是字符串数组。
PHP的作者决定与世界其他地方不一致,并要求专门构建HTML。
在名称的末尾加上方括号告诉PHP将其视为数据数组。