两个数组匹配它们并显示不匹配

问题描述:

我有两个数组$jlist$vlist,我需要显示不匹配的条目。两个数组匹配它们并显示不匹配

if($jlist==$vlist) echo ''; 
else echo $vlist; 

我的循环尝试失败,随着使用foreach方法。请指教。

if(count($jlist)>0)&&(count($vlist)>0) 
{ 
    foreach($jlist as $j)&&($vlist as $v) 
    { 
     if($v==$j)echo ''; 
     else 
      echo '<option>'.$v.'</option>'; 
    } 
} 
+7

所以你试过和array_diff()? (http://www.php.net/manual/en/function.array-diff.php) – 2013-02-14 10:20:58

+2

不,但我会研究, – Brobina 2013-02-14 10:21:57

+0

尝试'array_diff()'函数 – 2013-02-14 10:28:58

if(count($jlist)>0 && count($vlist)>0) 
{ 
    $new_list=array_diff($jlist,$vlist); 
    foreach($new_list as $j) 
    { 
    echo '<option>'.$j.'</option>'; 
    } 
} 
+1

你可以添加一些评论吗?它有助于理解你的建议。 – Yaroslav 2013-02-14 10:43:26

+0

您的评论不尊重。事实上,你没有做任何自由职业,甚至更好,你应该帮助社区。当然,你可以自由地不留下任何评论,但你正在回答帮助其他人是的?如果你解释你在做什么,你的答案会更清晰。检查这个[metaSO问题](http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question)和[Jon Skeet:Coding Blog]( http://msmvps.com/blogs/jon_skeet/archive/2009/02/17/answering-technical-questions-helpfully.aspx)如何给出正确的答案。 – Yaroslav 2013-02-14 11:10:21

检查出来

foreach($jlist as $j) 
{ 

    if(!in_array($j,$vlist)) 
      echo $j."<br/>"; 

} 
+0

小心添加一些评论?这将有助于OP和未来的访问者了解您的代码。 – Yaroslav 2013-02-14 10:43:58

如果您正在寻找其不在第二个中的第一个数组中的元素,你应该尝试array_diff($jlist, $vlist)颠倒排列顺序,如果你想第二个阵列中不存在于第一个阵列中的元素。

如果你正在寻找的,那么您只需要合并两个结果,如array_merge(array_diff($jlist, $vlist), array_diff($vlist, $jlist))