У меня есть 2 массива, я беру 1 строку из первого массива и проверяю, есть ли она во втором массиве, если это так, флажок уже установлен.Мой код проверяет флажок, но он также создает непроверенную версию того же флажка.Мой оператор if находится в цикле foreach, поэтому проблема может быть в следующем порядке, но, похоже, я не могу его решить.
Мой код:
<?php foreach ($zamestnanec_item as $key => $value):?>
[Other codes here]
<?php foreach ($myukony_item as $key => $value3):
if(in_array($value['Nazov'],$value3)): ?>
<input type="checkbox" name="ukony[]" value="<?php echo $value['ID_ukon'] ?>" checked="checked"><?php echo $value['Nazov'] ?>
<?php else: ?>
<input type="checkbox" name="ukony[]" value="<?php echo $value['ID_ukon'] ?>" ><?php echo $value['Nazov'] ?>
<?php endif; ?>
<?php endforeach;?>
<?php endforeach;?>
Решил сам:
<?php foreach ($myukony_item as $key => $value3):
if(in_array($value['Nazov'],$value3)): ?>
<input type="checkbox" name="ukony[]" value="<?php echo $value['ID_ukon'] ?>" checked="checked"><?php echo $value['Nazov'] ?>
<?php break; else:
if( $key == ( count( $myukony_item ) - 1 ) ):?>
<input type="checkbox" name="ukony[]" value="<?php echo $value['ID_ukon'] ?>" ><?php echo $value['Nazov'] ?>
<?php endif; ?>
<?php endif;
?>
<?php endforeach;?>
Не отмеченный флажок следует добавлять только после того, как он прошел через весь внутренний цикл foreach и не нашел соответствия.