PHP in_array返回误报

时间:2012-02-15 17:28:14

标签: php arrays

我正在检查是否应该根据id的用户首选项数组检查复选框:

if(in_array($category['id'], $checkedarray)){
  $checked = "checked='checked'";
}

checked数组的结果类似于:

array(43) {
[0]=>
string(2) "31"
[1]=>
string(2) "32"
[2]=>
string(2) "34"
[3]=>
string(2) "35"
}

在上面的数组示例中,33仍然返回true,即使它不在那里。

我尝试过使用:

(in_array($category['id'],$checkedarray, true)

结果与没有严格条件的情况相同。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

33不会返回true - 您只是永远不会重置$checked变量。

if (true) { $checked = "checked" };
if (false) { /* never gets executed */ }

添加其他内容!

if (in_array(33, $checkedarray)) {
    $checked = "checked='checked'";
} else {
    $checked = "";
}