2012-04-23 54 views
0

示例:In_array但具有更多值

$ array = array('hi','hello','bye');

如何檢查數組中是否存在兩個或更多值中的至少一個值?

,如:

如果(in_array( 'HI',$陣列)|| in_array( '你好',$陣列))...

但一張支票?可以做到嗎?

回答

6
if(count(array_intersect(array('hi','hello','bye'), $array))) { 
    ... 
} 
+0

或者說:'如果(計數(array_intersect(陣列( '喜', '你好', '再見'),$陣列)) > = 2)' – ghoti 2012-04-23 23:13:35

+1

否。如果至少存在一個,他希望返回true,而不是至少存在兩個。 – Interrobang 2012-04-23 23:18:19

+1

+1這很好。但是,計數是不必要的。評估爲布爾值的非空數組始終爲真。 – goat 2012-04-23 23:22:00

1
function in_array2($ary1,$ary2){ 
    return count(array_intersect($ary1,$ary2)) > 0; 
} 

簡單,利用array_intersect

1

看看preg_grep,它會返回一個數組中符合預定義模式的條目(例如在您的示例中爲'/^(hi|hello)$/)。

E.g.

if (count(preg_grep('^/(hi|hello)$/',$array))) 
{ 
    // your code 
} 
1

使用array_intersect()...即

$array = array('hi', 'hello', 'bye'); 
if(count(array_intersect($array, array('search', 'for', 'values')))>0) .... 
+0

grr ...太慢了 – 2012-04-23 23:15:39