如何比较PHP中数组中的相同值?

时间:2012-06-28 05:36:02

标签: php

我从数据库中获取值作为数组

<?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是一个从数据库返回的数组

3 个答案:

答案 0 :(得分:1)

使用

foreach (array_expression as $key => $value)
    statement

foreach-manual page

因此您可以使用相同的索引来获取值

<?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);

?>