我希望收到无限的$ _POST变量,包括一个额外的数字,并将它们转换为像paypal表格那样的数组。
示例:
<form action="mysite">
<input name="productname" />
<input name="productname1" />
<input name="productname2" />
Etc....
</form>
收到后我会把它变成一个php数组:
products(gta,twilight,flowers,chocolate,ipod)
所以,为了解释你,我想将它们列为发票。
注意:请不要建议使用productname [],我想使用preg match来做到这一点 感谢
答案 0 :(得分:4)
<form action="mysite">
<input name="productname[]" />
<input name="productname[]" />
<input name="productname[]" />
Etc....
</form>
然后$_POST['productname']
将是一个包含所有值的数字数组。
如果无法控制表单,可以像这样构建数组:
$res = array();
foreach ($_POST as $k => $v) {
if (preg_match('/^productname(\d{0,})$/', $k, $matches))
$res[(int) $matches[1]] = $v;
}
// result in $res
答案 1 :(得分:1)
<?php
foreach($_POST as $name => $value) {
if(strpos($name, 'productname') === 0) {
// Do something with it
}
}
?>
答案 2 :(得分:0)
如果他们实际上不必在名称中包含数字,请使用:
<form action="mysite">
<input name="productname[]" />
<input name="productname[]" />
<input name="productname[]" />
Etc....
</form>
PHP会将productname
转换为数组。 FAQ有关于此功能的更多信息。