foreach循环通过特定的$ request

时间:2016-02-09 19:59:26

标签: php foreach

我有一个包含多种输入类型的表单,所有这些都需要以不同的方式处理。我做了一个循环来命名它们的形式如下:

product-0-length
product-0-size
product-1-length
product-1-size
product-2-length
product-2-size

在我的处理php(表单信息被发送)上,我想迭代一个循环来处理与长度不同的大小。我的想法是这样,但没有运气:

<?php  
    $i = 0;
    foreach($_REQUEST['product-'.$i.'-length'] as $key => $val) {
        //style or do what I need with the length information for each product 
        echo '<li>'.$key.'='.$val .'</li>';
        $i++;
    }
?>

1 个答案:

答案 0 :(得分:0)

正如我在上面的评论中所建议的那样,您可以为输入字段使用不同的命名方案。请查看此示例以创建表单:

<?php
foreach ($i=0; $i<3; $i++) {
  echo "<input type=\"text\" name=\"product[$i][length]\">\n";
  echo "<input type=\"text\" name=\"product[$i][size]\">\n";
}

提交此表单时,服务器会将表示法转换为php数组,这是一个非常方便的事情。您可以简单地遍历该数组:

<?php
foreach ($_POST['product'] as $key=>$product) {
  echo "<li>Length of product $key: " . $product['length'] . "</li>\n";
  echo "<li>Size of product $key: " . $product['size'] . "</li>\n";
}

请注意,这是一个非常原始的示例,所有错误检查等都缺失,以防止事情紧张。此外,我没有在这里测试这段代码,它只是为了指出你正确的方向,但我希望那里没有太多的错别字......