如果我有这个$ _POST数组:
session[1][0]=50&
session[1][1]=60&
session[2][0]=70&
session[3][0]=80
如何使用for循环来获取会话和项目的值?我认为这样可行,但事实并非如此。
foreach ($_POST['session'] as $i => $value) {
$session = $session[$i];
$item = $value;
$query->bindValue(':session', $session, PDO::PARAM_INT);
$query->bindValue(':item', $value, PDO::PARAM_INT);
$query->execute();
}
这样循环的第一次迭代会产生$ session = 1和$ item = 50?
答案 0 :(得分:1)
从您的代码中,$_POST['session'][$i]
和$value
将是相同的,第一次迭代包含array(0 => 50, 1 => 60)
。
在第一次迭代中,$session
尚未定义,因此您无法访问$session[$i]
。
获得你想要达到的目标:
foreach ($_POST['session'] as $i => $value) {
$session = $i; //1
$item = $value[0]; //50, and $value[1] is 60
}
要了解有关变量内容的更多信息,您可以使用print_r($value)
打印其内容,以便了解其内容和结构。
<强> 更新 强>
迭代每个会话的所有值:
foreach ($_POST['session'] as $session => $value) {
foreach ($value as $item) {
//do whatever you want here with the $session and $item
//over all the iterations, here we will have:
//iteration#1 $session=1, $item=50
//iteration#2 $session=1, $item=60
//iteration#3 $session=2, $item=70
//iteration#4 $session=3, $item=80
}
}
答案 1 :(得分:1)
假设您要打印变量中的所有值,您应该在这里使用嵌套循环。
extractFeatures
输出:
foreach ($_POST['session'] as $i => $value) { /* Accessing session[1], session[2] ... */
foreach ($value as $val) { /* session[1][0], session[1][1] ..... */
echo $val;
}
}