array_intersect переменное количество массивов

Я создаю граненый поиск, и я пытаюсь использовать array_intersect для сравнения массивов и поиска входных данных, которые соответствуют.

Проблема в том, что я буду иметь переменное количество массивов в любое время в зависимости от того, какие фильтры выбрал пользователь:

$array_1, $array_2, $array_3 т. д. …

Как создать функцию array_intersect которая является динамической в ​​этом смысле?

Это то, что я пробовал:

 $next_array = 0; for($i = 0; $i < $array_count; $i++) { $next_array++; if ($i == 0) { $full_array = ${array_.$i}; } else { if(!empty(${cvp_array.$next_array})) { $full_array = array_intersect($full_array, ${cvp_array_.$next_array}); } } } 

————- РЕДАКТИРОВАТЬ ————-

Я постараюсь немного сузить мою цель:

Если пользователь нажимает на три фильтра, это приводит к созданию трех массивов, каждый из которых имеет индивидуальные результаты:

Array_1 ( [0] => 2, [1] => 4, [2] => 6 )

Array_2 ( [0] => 1, [1] => 4, [2] => 6 )

Array_3 ( [0] => 6, [1] => 7, [2] => 8 )

Мне нужен код, который найдет номер, который находится во ВСЕХ массивов. И если нет общего числа, то это закончится как ложное или что-то еще. В приведенном выше случае мне понадобится его для извлечения 6. Если бы это были только первые два массива, он возвращался бы 4 и 6.

Прежде всего, превратите эти массивы в массив массивов. Затем вы можете использовать array_reduce сочетании с array_intersect чтобы уменьшить количество массивов переменных до одного.

Попробуй это:

 $fullArray = array($array1, $array2, $array3...); call_user_func_array('array_intersect', $fullArray); 

Вы можете превратить этот массив в один массив с именем $total_array с помощью array_combine() , а затем использовать array_intersect($full_array, $total_array) . Я надеюсь, что это полезно