0

我如何遍历 $departments 数组并测试它是否等于 $name 变量值,如果它在列表中则返回“已检查”。部门是一组复选框

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

4 回答 4

1

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

function isChecked($name) {
$departments = (isset($_POST["interests"])) ? $_POST["interests"] : array();
foreach ($departments as $key => $value) {
    if($value == $name) { 
        return "checked";   
    };  
}
return "";
}
于 2013-02-16T03:37:21.953 回答
1

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

采用

if($value == $name)
于 2013-02-16T03:39:28.493 回答
0

你想使用

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

或者

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

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

于 2013-02-16T03:37:34.947 回答
0

试试这个。

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

如果您需要该函数在 true 时返回字符串值checked,您可以这样做。

return isset($_POST['interests'][$name]) ? 'checked' : '';
于 2013-02-16T03:39:03.203 回答