Мне нужно сопоставить день, установив флажок из базы данных с массивом недели. Вот мои ресурсы:
$ WeekDay
$weekDay=array("1"=>"Mon","2"=>"Tue","3"=>"Wed","4"=>"Thu","5"=>"Fri","6"=>"Sat","7"=>"Sun");
$ opDay
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 )
Итак, я пишу:
foreach($weekDay as $key=>$val){
$inDay = array_intersect($weekDay,$opDays);
echo "<label><input type=\"checkbox\" name=\"exc_opd[]\" value=\"{$key}\" ".(($inDay)? '"checked"':" " )."/> {$val}</label> ";
}
В соответствии с функцией я ожидаю флажок, который соответствует $opDay
было бы checked
, И цикл продолжится с непроверенных ящиков.
Наконец, я придумала это решение. Не может быть лучшим, но это работает. Любые предложения для моего знания будут оценены.
foreach($weekDay as $key=>$val){
$inDay = array_intersect_key($weekDay,array_flip($opDays));
if($inDay[$key]){
echo "<label><input type=\"checkbox\" name=\"exc_opd[]\" value=\"{$key}\" checked/> $val</label> ";
}else{
echo "<label><input type=\"checkbox\" name=\"exc_opd[]\" value=\"{$key}\"/> $val</label> ";
}
}
Других решений пока нет …