将键添加到foreach创建的数组中而不添加所有值

时间:2013-02-25 05:54:49

标签: php foreach

foreach($_POST['door_check'] as $door_check) 
{
    $_SESSION['front_door']['door'] = $door_check;
}

我有一小段代码可以检查检查了多少个框,然后创建一个复选框值数组。

问题是,当我添加“门”键时,无论选中多少个复选框,数组都只会添加一个值。当我把它留空时,它会添加所有这些,如[0],[1],[2]等

为什么会这样?,

2 个答案:

答案 0 :(得分:8)

您的foreach()循环每次都会覆盖旧变量。您需要将会话变量设为数组,例如

foreach($_POST['door_check'] as $door_check) 
{
    $_SESSION['front_door']['door'][] = $door_check;
}

编辑:保存以供日后使用时,请不要忘记验证该数据。

答案 1 :(得分:4)

尝试这样的事情:

foreach($_POST['door_check'] as $door_check) {
    $_SESSION['front_door']['door'][] = $door_check;
}

或者甚至可能:

$_SESSION['front_door']['door'] = $_POST['door_check'];