2013-10-09 201 views
0

我有一個350值的數組(從API中收集)。檢查是否至少有一個數組值在另一個數組中PHP

現在爲了過濾,我允許用戶選擇未知數量的國家。

這方面的例子可能是由以下

$countries = array 
(
    0 => 'Denmark', 
    1 => 'Sweden', 
    2 => 'United states', 
    3 => 'Norway' 
); 

現在我想檢查值ATLEAST一個是我的數據陣列

我知道我能夠通過循環做到這一點通過它們全部並單獨檢查。但如果我真的想避免這種情況。

那麼有沒有辦法在PHP中做這樣的事情?

+0

問題要求代碼必須說明問題的一小部分的理解正在解決。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。 – Kermit

+0

瑞典拼寫錯誤。只是說;) – ANisus

+0

是的,我知道我很抱歉。 :) – Marc

回答

4

在php中有許多數組函數。你想要array_intersect,你可以得到所有在這兩個數組中列出的。

http://www.php.net/manual/en/function.array-intersect.php

+1

array_intersect檢查一個數組的所有值是否在另一個數組中。我只想檢查是否存在ATLEAST 1值 – Marc

+1

@Marc只需檢查返回的相交數組是否大於0 – ANisus

+0

因此,像這樣:count(array_intersect($ country_array,$ data ['Country'] [''名稱']))> 0 – Marc

1
$needles = array(0 => 'Denmark', 1 => 'Sweden'); 
$haystack = array(0 => 'Denmark', 1 => 'Sweden', 2 => 'United States', 3 => 'Russia'); 
$found = array_intersect($haystack, $needles); 

$發現則是:

array(2) { 
    [0]=> 
    string(7) "Denmark" 
    [1]=> 
    string(6) "Sweden" 
} 

你真的需要閱讀手冊:http://www.php.net/manual/en/function.array-intersect.php

相關問題