2013-10-09 61 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

相关问题