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


how to compare same values in array in 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 个复选框而不是四个,因为我使用两个 for 循环,我不希望这样。

$this->getlist 是一个从数据库返回的数组

使用

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
}
?>

你可以在 php 中使用in_array函数来比较数组值。您可以在 http://php.net/manual/en/function.in-array.php 查看更多详细信息。希望这有帮助。

请在下面找到适合您问题的解决方案。它是使用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);
?>