php 通过$_POST值循环[已关闭]

gupuwyp2  于 2023-02-07  发布在  PHP
关注(0)|答案(2)|浏览(129)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
3天前关闭。
Improve this question
我的网站上有一个非常简单的表格。
我运行这个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,而不是两行。
我觉得我忽略了一些明显的东西。

oaxa6hgo

oaxa6hgo1#

你在错误的地方循环,你同时用了两种不同的方法来循环同一个东西。
1.将$i设置为0
1.您的foreach循环达到$_POST['data']
1.将$i更改为1
1.您访问$_POST['data'][1]
1.到达循环的末尾
你需要遍历你真正想遍历的东西。
data是一个固定的东西,所以硬编码。然后循环它包含的数组。
只有在使用regular for loop时才使用$i变量。
当使用foreach时,使用的是在其中定义的变量(在本例中为$key$value)。

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

jei2mxaa2#

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

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

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

}

相关问题