быстрее, чем in_array?

Мне нужно сравнить значение с массивом. Однако мне нужно сравнить несколько значений в foreach. Если вы используете in_array, это может быть медленным, очень медленным. Есть ли более быстрая альтернатива? Мой текущий код

foreach($a as $b){ in_array($b, $array); } 

Спасибо.

Related of "быстрее, чем in_array?"

Вы можете использовать array_diff для вычисления разности между массивом $a $array . Это даст вам все значения не в $array или $a .

Пример из руководства:

 $array1 = array("a" => "green", "red", "blue", "red"); $array2 = array("b" => "green", "yellow", "red"); print_r( array_diff($array1, $array2) ); Array ( [1] => blue ) 

Или вы можете использовать array_intersect чтобы найти те, которые находятся в этих массивах.

array_intersect Пример из руководства PHP:

 $array1 = array("a" => "green", "red", "blue"); $array2 = array("b" => "green", "yellow", "red"); print_r( array_intersect($array1, $array2) ); Array ( [a] => green [0] => red ) 

Выберите тот, который вам нужен.

Если вы можете обрабатывать массив как хэш:

 $array = array('value' => 1); 

Затем в foreach выполните следующее:

 foreach($a as $b){ isset($array[$b]); } 

Я просто скопировал и вставил ваш пример, я полагаю, что есть больше кода, но в основном использование isset намного быстрее, чем использование функции in_array,

Я думаю, что вы ищете пересечение $ a массива $, не так ли? Если да, просто используйте array_intersect()