Php 2个foreach语句中的逻辑

Php 2个foreach语句中的逻辑,php,Php,下面的代码在两个数组中循环,$this->userKeyword和$this->useralgents foreach($this->userKeyword as $keyword){ foreach($this->userAllergens as $allergens){ if($keyword['keywordid'] != $allergens['keywordid']){ ?> <label&

下面的代码在两个数组中循环,
$this->userKeyword
$this->useralgents

foreach($this->userKeyword as $keyword){
    foreach($this->userAllergens as $allergens){
        if($keyword['keywordid'] != $allergens['keywordid']){
            ?>
            <label><?php echo $keyword['name'];?></label>
            <input type="checkbox" name="<?php echo $keyword['name'];?>" value="<?php echo $keyword['keywordid'];?>" /><br />
            <?php
        }
    }
}
foreach($this->userKeyword作为$keyword){
foreach($this->userAllogens作为$Allogens){
如果($keyword['keywordid']!=$过敏原['keywordid']){
?>

使用array_diff,请参阅。您也可以使用in_array(),array_diff更好

使用array_diff,请参阅。您也可以使用in_array(),array_diff更好

如果我理解正确,您想:

foreach($this->userKeyword as $keyword){
    if(!(in_array($keyword, $this->userAllergens, true)) {
        echo "$keyword";
    }
}
您可以使用
in_array
函数。请注意,布尔标志设置您是否正在进行严格比较,并可能导致误导性结果


如果我理解正确,您希望:

foreach($this->userKeyword as $keyword){
    if(!(in_array($keyword, $this->userAllergens, true)) {
        echo "$keyword";
    }
}
您可以使用
in_array
函数。请注意,布尔标志设置您是否正在进行严格比较,并可能导致误导性结果


如果我理解正确,请在第一个foreach内尝试输出,但在第二个foreach外尝试输出。如果我理解正确,请在第一个foreach内尝试输出,但在第二个foreach外尝试输出。这似乎是我心目中的确切函数,只是以前从未遇到过。您能为我的数组提供一个简单的代码示例吗?我已经尝试过实现它但是出错了!我错过了一些要写的东西。似乎是我心目中的确切函数,只是以前从未遇到过。你能为我的数组提供一个简单的代码示例吗?我尝试过实现它,但遇到了错误!我错过了一些要写的东西。我的数组包含ID,所以严格比较不会有问题吗?可能,但我只是想由于PHP用于比较的类型转换,我没有警告您。(即1==true)我的数组包含ID,因此严格比较不会成为问题?可能,但我只是想警告您,因为PHP用于比较的类型转换。(即1==true)