答案 0 :(得分:1)
如果必须执行此操作,则:
$checkedPurposes = preg_split('/\s*,\s*/', $purposeColumnFromDatabase);
// then for each checkbox
if (in_array($purposeName, $checkedPurposes)) {
// echo checked
}
正则表达式确保与逗号周围的空格数量无关的错字。
但是,正如其他用户在评论中所说,这是错误的数据库设计。如果您可以更改架构以将目的移动到自己的表中,则可能应该这样做。
答案 1 :(得分:1)
这是一个示例(尽管这不是设计代码的正确方法)。
$purposesFull=array('a','b','c','d','e');
$purposesFromDB='a,b,d';
$purposesFromDBArray=explode(',',$purposesFromDB);
foreach($purposesFull as $item){
$checked = in_array($item,$purposesFromDBArray) ? ' checked' : '';
echo '<input type="checkbox" name="purs[]"'.$checked.'>'.$item;
echo '<br/>';
}