获得无限的$ _POST变量&列出他们

时间:2010-08-20 03:33:43

标签: php arrays post

我希望收到无限的$ _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来做到这一点 感谢

3 个答案:

答案 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有关于此功能的更多信息。