2013-02-14 87 views
1

我有兩個數組$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

回答

1
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

0

檢查出來

foreach($jlist as $j) 
{ 

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

} 
+0

小心添加一些評論?這將有助於OP和未來的訪問者瞭解您的代碼。 – Yaroslav 2013-02-14 10:43:58

1

如果您正在尋找其不在第二個中的第一個數組中的元素,你應該嘗試array_diff($jlist, $vlist)顛倒排列順序,如果你想第二個陣列中不存在於第一個陣列中的元素。

如果你正在尋找的,那麼您只需要合併兩個結果,如array_merge(array_diff($jlist, $vlist), array_diff($vlist, $jlist))

相關問題