2011-06-06 114 views
1

我不確定哪個php函數用於此..比較來自2個陣列的值

如何檢查一個數組是否具有可用於另一個數組中的值?

FRO例如,我有一個文本輸入其中CSV提交--- $str = "green, yellow, blue"

我使用str_getcsv()創建字符串的數組。然後我想陣列1比較看出以下

$array2 = array("green","yellow","orange","purple"); 

我比較陣列1陣列2陣列2,以確保提交的值是允許的。所以如果數組1中的值不存在於數組2中,我想返回false。我試過以下但它不起作用..

 $array1 = str_getcsv($str); //create array of colors 
     $array2 = array("green","yellow","orange","purple"); //allowed colors 

     if (!in_array($array1, $array2)) if value from array1 not in array2 
     { 
      return FALSE; 
     } 
     else 
     { 
      return TRUE; 
     } 

這是比我想象的更復雜嗎?

回答

4
+0

+1。我發佈array_intersect(刪除了我的答案),但array_diff在這裏更好。它確實返回* not *在另一個數組中的項目。所以如果array_diff返回任何值,你知道你的輸入是錯誤的。返回的值是不允許的。 – GolezTrol 2011-06-06 22:20:37

+0

同意,array_diff()似乎是一個很好的解決方案 – CyberJunkie 2011-06-06 22:28:25