例:
$array = array('hi', 'hello', 'bye');
2 つ以上の値の少なくとも 1 つが配列に存在するかどうかを確認するにはどうすればよいですか?
お気に入り:
if(in_array('hi', $array) || in_array('hello', $array)) ...
しかし、単一のチェックで?それはできますか?
if(count(array_intersect(array('hi','hello','bye'), $array))) {
...
}
function in_array2($ary1,$ary2){
return count(array_intersect($ary1,$ary2)) > 0;
}
シンプルに、array_intersectを利用します。
preg_grepを見てください。これは、事前定義されたパターンに一致する配列内のエントリを返します (例:'/^(hi|hello)$/
あなたの例)。
例えば
if (count(preg_grep('^/(hi|hello)$/',$array)))
{
// your code
}
array_intersect() を使用します...つまり
$array = array('hi', 'hello', 'bye');
if(count(array_intersect($array, array('search', 'for', 'values')))>0) ....