php指定数组值?传递给each()的变量不是数组或对象

时间:2012-04-30 01:54:41

标签: php arrays

初学PHP程序员在这里尝试使用mailchimp API ...

关于我的第一行代码,我不断收到这个PHP错误....我正在从表单中发布一个值,如您所见,但我不确定发生了什么。

错误: 警告:传递给each()的变量不是第24行xxxxxxx中的数组或对象(这是第一行)

while (list($key, $val) = each($_POST['MCgroup'])) {
        $interest .= ($count>0 ? ", " : "");
        $interest .= $val;
        $count++;
    }

    echo $interest; //echos NOTHINGblank
    $mergeVars = array(
                       'INTERESTS'=>$interest
                        );

    echo $mergeVars; //echos the word ARRAY

根据我的研究,显然我没有通过实际的ARRAY ...而且从我发现的,我的语法似乎都是正确的。 (但我可能会忽略一些事情)。

以下是传递值

的表单代码的一部分
 <input type="hidden" name="MCgroup" id="MCgroup" value="My Interest One" />
 <input type="hidden" name="MCgroup" id="MCgroup" value="My Interest Two" />

或我可以将其更改为

<input type="hidden" name="MCgroup" id="MCgroup" value="My Interest One, My Interest Two" />

我只是不确定如何将它变成数组。

请帮忙!谢谢!

2 个答案:

答案 0 :(得分:1)

将HTML名称更改为数组:

 <input type="hidden" name="MCgroup[]" id="MCgroup1" value="My Interest One" />
 <input type="hidden" name="MCgroup[]" id="MCgroup2" value="My Interest Two" />
 <input type="hidden" name="MCgroup[]" id="MCgroup3" value="And another sparkling interest" />

如果它将是唯一的,也只使用id。

答案 1 :(得分:1)

您可以通过后缀<input>[]设置为具有数组名称,执行以下操作:

<input type="hidden" name="MCgroup[]" id="MCgroup" value="My Interest One" /> <input type="hidden" name="MCgroup[]" id="MCgroup" value="My Interest Two" />

然后通过以下方式检查:

print_r($_POST['MCgroup']);

我假设您将表单方法设置为POST。