【问题标题】:PHP For loop with complex input array具有复杂输入数组的 PHP For 循环
【发布时间】:2019-10-08 19:24:04
【问题描述】:

好的,我需要一些帮助。我有一个表单,用户可以在其中添加/删除一些输入字段。这些字段存在于使用 jQuery 动态构建的模式中。这是我的基本设置:

<!--The fields I'm building and capturing-->
<script>
...
  var fieldOne = '<input type="text" name="field'+groupCount+'[one]">';
  var fieldTwo = '<input type="text" name="field'+groupCount+'[two]">';
...
</script>

groupCount 由增量按钮点击设置。如果 groupCount 为零,则不存在任何字段。这会产生一系列 field1[one]field1[two]field2[one]field2[two] 等等。

这些存在的形式(当然)会发布到一个单独的 PHP 文件中。我知道我可以将 PHP 变量分配给每个单独的字段,但这对更大的组没有帮助。

我假设我会使用某种 for 循环 来捕获这些字段值,但丝毫不知道如何。任何帮助将不胜感激。

【问题讨论】:

  • 您也可以从 HTML 中使用多维...name="field[1][one]"
  • 这对我在 PHP 方面有何帮助?我会使用类似的东西吗:for($i=0;$i&lt;$groupCount;$i++){$field[$i]one = $_POST['field'.$i.['one']];}
  • 嗯...有点。但是您需要让自己熟悉 PHP 数组以及如何正确使用它们。您的示例代码不会运行。

标签: php arrays for-loop multidimensional-array form-post


【解决方案1】:

在你的 php 中你可以使用 preg_match

$data = array();
foreach ( $_POST as $key => $value ) {
    $matches = array();
    if (preg_match('/^field(\d+)$/', $key, $matches)) {
        $data[$matches[1]][] = $value;
    }
}
var_dump($data);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2013-09-26
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多