【问题标题】:Loop through $_POST values遍历 $_POST 值
【发布时间】:2023-02-02 19:30:16
【问题描述】:

我的网站上有一个非常简单的表格。

我运行这个PHP循环表单内容:

echo '<pre>';
var_dump($_POST);
echo '</pre>';

$i = 0;

foreach($_POST as $key => $value)
{

    $i++;
    echo $value[$i]['row_id'];

}

我得到以下信息:

array(1) {
  ["data"]=> array(2) {
            [1]=>  array(2) {
                ["row_id"]=> string(5) "33714"
                ["sport"]=> string(8) "swimming"
            }
            [2]=> array(2) {
                ["row_id"]=> string(5) "33715"
                ["sport"]=> string(8) "football"
            }
  }
}

33714

我的 PHP 只回显第一行 id 33714 而不是两行。

我觉得我在这里遗漏了一些明显的东西。

【问题讨论】:

  • $i++你回声。 (如果你在回显之前递增它,它在第一次迭代时将是1,跳过0
  • @brombeer 即便如此,它似乎仍然只循环一行。
  • 您的记录在 data 键中
  • 该代码不会从该输入生成该输出???它生成33715

标签: php


【解决方案1】:

你在循环错误的事情你同时使用两种不同的方法来循环同一件事。

  1. 您将$i设置为0
  2. 你的foreach循环到达$_POST['data']
  3. 您将$i 更改为1
  4. 您访问$_POST['data'][1]
  5. 您到达了循环的末尾

    您需要遍历您实际想要遍历的内容。

    data 是一个固定的东西,所以硬编码。然后遍历它包含的数组。

    如果您使用 regular for loop,则仅使用 $i 变量。

    当您使用 foreach 时,您使用您在其中定义的变量(在本例中为 $key$value)。

    foreach($_POST['data'] as $key => $value) {
        echo $value['row_id']
    }
    

【讨论】:

  • 非常感谢你把它放在一起。 PHP 有点生疏,非常感谢您的帮助。
【解决方案2】:

简单地说,你需要循环 $_POST['data'] 的项目,而不仅仅是 $_POST

echo '<pre>';
var_dump($_POST);
echo '</pre>';

foreach($_POST['data'] as $key => $item)
{
    echo $key.':'. $item['row_id'];

}

【讨论】:

  • 惊人的。效果很好。非常感谢您抽出宝贵时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 2015-08-07
相关资源
最近更新 更多