我有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循环并且没有找到匹配项之后才应添加未选中的框。