我从数据库中获取值作为数组
<?php
foreach($this->getlist as $value){
foreach($this->listOfdealers as $list){
?>
<tr>
<td>
<input type="checkbox" name="list[]" value=<?php echo $list->nList?>
<?php if($value->nSubList==$list->nList){echo 'checked'; } ?> />
<label for="list_32"><?php echo $list->nList?>
</label>
</td>
</tr>
<?php
}
}
?>
我只是想比较两个数组值,并在它们相等时显示复选框,但是这里显示16个复选框而不是4个,因为我使用了两个for循环而我不想这样。
$ this-&gt; getlist是一个从数据库返回的数组
答案 0 :(得分:1)
使用
foreach (array_expression as $key => $value)
statement
因此您可以使用相同的索引来获取值
<?php
foreach($this->getlist as $index => $value)
{
$list = $this->listOfdealers[$index];
?><tr>
<td>
<input type="checkbox" name="list[]" value=<?php
echo $list->nList ?>
<?php if($value->nSubList==$list->nList){echo 'checked'; } ?> />
<label for="list_32"><?php echo $list->nList?>
</label>
</td>
</tr>
<?php
}
?>
答案 1 :(得分:0)
您可以在php中使用in_array函数来比较数组值。您可以查看http://php.net/manual/en/function.in-array.php以获取更多详细信息。希望这会有所帮助。
答案 2 :(得分:0)
请针对您的问题找到以下解决方案。 它是使用in_array和array_diff的示例代码。您可以使用任一功能。
<?php
$var1 = array("test","test1","test2");
$var2 = array("test","test1","test2","test3");
$var3 = array();
foreach($var1 as $i)
{
if(in_array($i,$var2))
{
//save the value
array_push($var3,$i);
}
else
{
continue;
}
}
//var3 will contain the values that are common in two arrays
//Another Method using array_diff
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
?>