Проверьте, содержит ли массив другой массив с PHP

Возможный дубликат:
Проверка того, содержит ли массив все элементы другого массива

Раньше я отправлял что-то вроде этого в Stackoverflow, но ответы не полностью удовлетворяют меня. Вот почему я снова задаю вопрос, но все время меняю вопрос.

Некоторые люди помогли мне создать функцию, которая проверяет, является ли array($GroupOfEight[$i]) который является элементом многомерного array($GroupOfEight) равным другому массиву ($ stackArray), не считая упорядочения числа в массивах.

Тем не менее, мне нужно проверить, содержит ли упомянутый array($stackArray) любой другой array($GroupOfEight[$i]) в многомерном array($GroupOfEight) или нет, это означает, что основной array($stackArray) может array($stackArray) больше элементов, чем subarrays($GroupOfEight[$i]) .

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

  <?php $GroupOfEight = array ( array(0,1,3,2,4,5,7,6), array(4,5,6,7,15,12,13,14), array(12,13,15,14,8,9,11,10), array(2,6,14,10,3,7,15,11), array(1,3,5,7,13,15,9,11), array(0,4,12,8,1,5,13,9), array(0,1,3,2,8,9,11,10) ); $stackArray = array(0,4,12,1,9,8,5,13,9,2,5,2,10); /*$stackArray gets value with POST Method by URL parameter. This is just the example. As you see this array contains $GroupOfEight[4], and also it contains many other numbers.*/ /* The function given below checks if $stackArray equals any of the subarrays of $GroupOfEight. However, we want to check if $stackArray caontains any of the subarrays of function. If it does, function should return the index number, if it doesnt it should return -1.*/ function searcheight($stackArray,$GroupOfEight){ for($i=0; $i<count($GroupOfEight);$i++){ $containsSearch = (count(array_intersect($stackArray,$GroupOfEight[$i])) == count($stackArray) && count(array_intersect($stackArray,$GroupOfEight[$i])) == count($GroupOfEight[$i])); if($containsSearch){ return $i; //This specifies which index in GroupOfEight contains a matching array } } return -1; } // Calling the function that is given above. echo searcheight($stackArray,$GroupOfEight); ?> 

Любые логические идеи или решения будут приветствоваться. Благодарю.

Можешь попробовать

 $GroupOfEight = array( array(0,1,3,2,4,5,7,6), array(4,5,6,7,15,12,13,14), array(12,13,15,14,8,9,11,10), array(2,6,14,10,3,7,15,11), array(1,3,5,7,13,15,9,11), array(0,4,12,8,1,5,13,9), array(0,1,3,2,8,9,11,10)); $stackArray = array(0,4,12,1,9,8,5,13,9,2,5,2,10); function searcheight($stackArray, $GroupOfEight) { $list = array(); for($i = 0; $i < count($GroupOfEight); $i ++) { $intercept = array_intersect($GroupOfEight[$i], $stackArray); $len = count($intercept); if ($len % 4 == 0) { $list[$i] = $len; } } arsort($list); if (empty($list)) return - 1; return key($list); } echo searcheight($stackArray, $GroupOfEight); 

Вывод

 5 

Это быстро:

 function contains_array($array){ foreach($array as $value){ if(is_array($value)) { return true; } } return false; }