首页 > 解决方案 > 以混合方式分布顺序数组项

问题描述

我有一个从 1 到 15 的有序列表。我将这些列表项放在一个表单中,并为每个项分配一个复选框。用户可以从该表单中的项目中选择他想要的任何内容。

当用户填写并发送表单时,我想将此列表分隔在某些标题下。

例如:

<form>
    <input type="checkbox" value="1" name="checklist[]"> Option 1
    <input type="checkbox" value="2" name="checklist[]"> Option 2
    <input type="checkbox" value="3" name="checklist[]"> Option 3 
    <input type="checkbox" value="4" name="checklist[]"> Option 4
    <input type="checkbox" value="5" name="checklist[]"> Option 5
    <input type="checkbox" value="6" name="checklist[]"> Option 6
    <input type="checkbox" value="7" name="checklist[]"> Option 7
    <input type="checkbox" value="8" name="checklist[]"> Option 8
    <input type="checkbox" value="9" name="checklist[]"> Option 9
    <input type="checkbox" value="10" name="checklist[]"> Option 10
    <input type="checkbox" value="11" name="checklist[]"> Option 11
    <input type="checkbox" value="12" name="checklist[]"> Option 12
    <input type="checkbox" value="13" name="checklist[]"> Option 13
    <input type="checkbox" value="14" name="checklist[]"> Option 14
    <input type="checkbox" value="15" name="checklist[]"> Option 15
</form>

根据您选择的结果:

类别 A
此类别中的问题:1 - 3 - 4 - 10
您选择了:3 - 4 - 10

类别 B
此类别中的问题:2 - 8 - 11 - 14 - 15
您选择了:2 - 8 - 11

C
类 此类别中的问题:5 - 6 - 7 - 9 - 12 - 13
您选择了:5 - 7 - 12 - 13

你能告诉我我该怎么做吗?

标签: phparraysforms

解决方案


我通过搜索找到了我提出的问题的答案。对于那些需要帮助的人,我在这里添加。

首先,将每个类别的选项做成一个数组。

$category_A = array (1, 3, 4, 10);
$category_B = array (2, 8, 11, 14, 15);
$category_C = array (5, 6, 7, 9, 12, 13)

然后将这些数组插入到 foreach 循环中并检查所选选项是否在此数组中。A 类示例:

foreach ( $category_A as $value ) {

    if ( in_array( $value, $_POST['check_list'] ) ){

        echo '<span class="selected">'. $value .'</span>';

    } else {

        echo '<span>'. $value .'</span>';

    }

}

推荐阅读