这是我的:
$prevtag = "1,2,5";
$arr;
$arr["1"] = "BOOKS";
$arr["2"] = "MAGAZINES";
$arr["3"] = "PAMPHLETS";
$arr["4"] = "CD'S";
$arr["5"] = "DVD'S";
我需要检查 $arr 中是否存在任何 $prevtag,然后回显 5 个复选框:
foreach ($arr as $key => $value) {
$checked = in_array($prevtag,$arr) ? '' : 'checked="checked"';
echo "<input name=\"txtTags".$key."\" type=\"checkbox\" id=\"txtTags".$key."\" value=\"on\" $checked />\n";
echo "<label for=\"txtTags".$key."\">".$value."</label>\n";
}
但我正在检查所有内容,而不仅仅是 $prevtag 中的那些 - 我做错了什么?
最佳答案
在您的示例中,$prevtag
是一个字符串而不是数组,因此您不能对其使用 in_array()
。
所以你可以试试:
$prevtag = explode(',', $prevtag);
然后:
foreach ($arr as $key => $value) {
$checked = in_array($key, $prevtag) ? '' : 'checked="checked"';
echo "<input name=\"txtTags".$key."\" type=\"checkbox\" id=\"txtTags".$key."\" value=\"on\" $checked />\n";
echo "<label for=\"txtTags".$key."\">".$value."</label>\n";
}
关于PHP FOREACH ARRAY问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648544/