如果$ _POST数组错误,则为array和if语句

时间:2013-02-16 03:32:10

标签: php

我如何迭代$ departments数组并测试它是否等于$ name变量值,如果列表中有它,则返回“checked”。 departments是一系列复选框

function isChecked($name) {
$departments = (isset($_POST["interests"])) ? $_POST["interests"] : array();
foreach ($departments as $key => $value) {
    // this next line here is wrong 
    if($departments[$key][$value] == $name) { 
        return "checked";   
    };      
}
return "";

}

4 个答案:

答案 0 :(得分:1)

你指的是foreach循环中的$value错误。 $value包含它所说的内容,$departments数组中的内容值。

function isChecked($name) {
$departments = (isset($_POST["interests"])) ? $_POST["interests"] : array();
foreach ($departments as $key => $value) {
    if($value == $name) { 
        return "checked";   
    };  
}
return "";
}

答案 1 :(得分:1)

而不是if($ departments [$ key] [$ value] == $ name)

使用

if($value == $name)

答案 2 :(得分:0)

您想要使用

if ($departments[$key] == $name) { ... }

if ($value == $name) { ... }

$department[$key]$key数组中的$department提供值,但由于您在循环定义中设置了该值,因此该值也有助于存储在$value中。

答案 3 :(得分:0)

试试这个。

function isChecked($name) {
    return isset($_POST['interests'][$name]);
}

如果需要函数返回字符串值checked,如果为true,则可以执行此操作。

return isset($_POST['interests'][$name]) ? 'checked' : '';