2012-04-23 15 views
0

例:より多くの値を持つIn_array

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

2つ以上の値の少なくとも1つがアレイに存在するかどうかを確認するにはどうすればよいですか?以下のような

場合(in_array( 'こんにちは'、$配列)|| in_array( 'こんにちは'、$配列))...

が、単一のチェックと

?それはできますか?

答えて

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

というか: '場合(数(array_intersect(配列( 'こんにちは'、 'こんにちは'、 'BYE')、$配列)) > = 2) ' – ghoti

+1

いいえ。彼は、少なくとも1つが存在すればtrueを返し、少なくとも2つが存在する場合は返しません。 – Interrobang

+1

+1これは良いことです。ただし、カウントは不要です。ブール値として評価される空でない配列は常にtrueです。 – goat

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

シンプル、array_intersectを利用します。

1

preg_grepをご覧ください。この例では、定義済みのパターンと一致する配列のエントリが返されます(例:'/^(hi|hello)$/)。

など。

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 ...あまりにも遅い –

関連する問題