1

请尽量仔细阅读,因为它甚至不容易解释。我有一个包含具有相同名称的各种输入的表单。这就是我将它们分组的原因,如下例所示:

<input class="" type="text" name="photoname[]"/>
<input class="" type="text" name="photodescription[]"/>
<input value="121001392" name="protagonist[][]" type="checkbox"/>
<input value="121001393" name="protagonist[][]" type="checkbox"/>
<input value="121001394" name="protagonist[][]" type="checkbox"/>
<input value="121001395" name="protagonist[][]" type="checkbox"/>

现在小组工作正常。问题是复选框,因为它们应该首先与其他输入字段的索引分组,然后有自己的索引。这就是为什么对于 beckboxes 我尝试使用这样的双组[][] 但是给定的数组是错误的,并且复选框没有以正确的方式分组。这是结果:

Array
(

    [photoname] => Array
        (
            [0] => 8e98ee38864e74a9d5abf45edb263b8f
            [1] => 16fb2761e8cbe6eb877b2af8a95441dd
        )

    [protagonist] => Array
        (
            [0] => Array
                (
                    [0] => 121001392
                )

            [1] => Array
                (
                    [0] => 121001393
                )

            [2] => Array
                (
                    [0] => 121001394
                )

            [3] => Array
                (
                    [0] => 121001395
                )

        )

    [photodesc] => Array
        (
            [0] => example
            [1] => example
        )

)

但预期的结果应该如下:

Array
(

    [photoname] => Array
        (
            [0] => 8e98ee38864e74a9d5abf45edb263b8f
            [1] => 16fb2761e8cbe6eb877b2af8a95441dd
        )

    [protagonist] => Array
        (
            [0] => Array
                (
                    [0] => 121001392
                    [1] => 121001393

                )

            [1] => Array
                (
                    [0] => 121001394
                    [1] => 121001395
                )

    [photodesc] => Array
        (
            [0] => example
            [1] => example
        )

)

在预期结果中,第一个索引是表单中所有其他输入的索引,子索引是每个选定复选框的索引。通过这种方式,我能够循环数组并根据父索引分配选中的复选框......如何实现这一点?

4

2 回答 2

1

[][]当您在二维数组中动态创建元素时,您获得的行为与您在使用时应该期望的行为完全匹配。如果不指定第一个索引,每次都会自动为第一个索引创建一个新值。

如果您需要对这些值进行分组,则需要像这样指定第一个索引

<input value="121001392" name="protagonist[0][]" type="checkbox"/>
<input value="121001393" name="protagonist[0][]" type="checkbox"/>
<input value="121001394" name="protagonist[1][]" type="checkbox"/>
<input value="121001395" name="protagonist[1][]" type="checkbox"/>
于 2013-07-05T18:07:39.553 回答
0
<input class="" type="text" name="photoname[]"/>
<input class="" type="text" name="photodescription[]"/>
<input value="121001392" name="protagonist[0][]" type="checkbox"/>
<input value="121001393" name="protagonist[0][]" type="checkbox"/>
<input value="121001394" name="protagonist[1][]" type="checkbox"/>
<input value="121001395" name="protagonist[1][]" type="checkbox"/>

您需要命名您的组。 []表示同一组中的多个值。但[][]不会工作。它必须是[group1][][group2][]

于 2013-07-05T18:06:38.790 回答