复选框进入数组处理

时间:2012-06-18 16:38:21

标签: php arrays

我有这样的问题。在我的表单中,我将其作为复选框:

<input type="checkbox" name="access[1]" value="E01">Highway 1<br><br>
<input type="checkbox" name="access[1][]" value="C001" >&nbsp;C001<br>
<input type="checkbox" name="access[1][]" value="C002" >&nbsp;C002
<br>
<br>
<input id="access[2]" type="checkbox" name="access[2]" value="E03">Highway 2<br><br>
<input id="access[2]" type="checkbox" name="access[2][]" value="XXXX">&nbsp;XXXX
<br>
<br>
<input id="access[3]" type="checkbox" name="access[3]" value="E05">Highway 3<br><br>
<input id="access[3]" type="checkbox" name="access[3][]" value="XXXX">&nbsp;XXXX<br>
<br>

在我的PHP代码中,我得到了这个:

foreach ($_POST ["access"] as $id => $subs) {       

    foreach ($subs as $sub) {

        $subcategory = $sub;

        echo "<p>".$id." - ".$subs." - ".$subcategory."</p>";

    }

}

结果是这样的:

http://s12.postimage.org/f2xi0yz4p/data4.png

您看到的数组应该是表单中的值吗?像“E01”/“E03”/“E05”。我怎样才能将“数组”这个词作为主要类别?

预期输出应该类似于:

1 - E01 - C0001
2 - E01 - C0002
3 - E03 - XXXX
4 - E05 - XXXX

由于

1 个答案:

答案 0 :(得分:0)

您需要将access[1]access[2]重命名为:access[1][id] access[2][id],因为access[1] / access[2]会自动转换为通过以下输入的数组。

然后你可以访问这些变量:

foreach ($_POST ["access"] as $id => $subs) {       

    foreach ($subs as $key=>$sub) {
        if($key!='id'){
            $subcategory = $sub;
            echo "<p>".$id." - ".$subs['id']." - ".$subcategory."</p>";
        }
    }

}