所有
我有一个数组列表,其中我有城市名称 和 在第二个数组列表中,我有城市名称,我想将它们显示为已检查项目。
我试图做的是
<?php
$mainArr = array("New York", "LA", "London", "Tokyo", "Paris", "Rome");
$checkedArr = array("New York", "Tokyo");
foreach( $mainArr as $main )
{
foreach( $checkedArr as $check ) {
if( $check == $main ) {
echo '<input type="checkbox" name="city" value="$main" checked />', $main;
}else {
echo '<input type="checkbox" name="city" value="$main" />', $main;
}
}
}
?>
但是这显示了重复的值。我怎么摆脱这个?我不想要重复的价值观。
应该检查纽约和东京 和 其余的应该是一样的。
由于
答案 0 :(得分:3)
使用in_array:
foreach($mainArr as $main) {
if (in_array($main, $checkedArr)) {
echo '<input type="checkbox" name="city" value="$main" checked />', $main;
}
else {
echo '<input type="checkbox" name="city" value="$main" />', $main;
}
}
在没有代码重复的情况下缩短一点:
foreach($mainArr as $main) {
$checked = in_array($main, $checkArr) ? 'checked' : '' ;
echo '<input type="checkbox" name="city" value="'.$main.'" '.$checked.' /> '.$main;
}