这是我第三次发布有关此主题的帖子。用户巴巴每次都帮助我。由于 SO 网站没有用户消息系统 - 不幸的是 - 我在帖子中提出了一个问题。再次。
在用户 Baba 的帮助下,我们设法创建了一个函数来检查一个数组是否包含另一个数组,但该函数会多次确定它并创建一个索引列表。该函数缺少并且我需要知道的是该函数在预期的异常中不会返回-1。函数可能返回不相关的值,函数不一致。我们只需要检查哪些数组与主数组($leftArray)匹配并返回这些数组的索引。如果没有任何匹配的数组,该函数必须返回 -1。
请查看此代码并帮助我:
<?php
$leftArray = array(7,6,14,15,8,0,1,4,5,9);
//contains $GroupOfFour[6] and $GroupOfFour[1], and some excess
//numbers. Function should return array(6,1), If there is not a
//matching case the function should return -1.
//i've realised that the exception cases and the multiple
//grouping does not work.
$GroupOfFour = array (
array(3,2,7,6),
array(7,6,15,14),
array(15,14,11,10),
array(1,3,5,7),
array(5,7,13,15),
array(13,15,9,11),
array(0,1,4,5),
array(4,5,12,13),
array(12,13,8,9),
array(0,4,12,8),
array(1,5,13,9),
array(3,7,15,11),
array(2,6,14,10),
array(0,1,3,2),
array(4,5,7,6),
array(12,13,15,14),
array(8,9,11,10),
array(0,2,8,10),
array(0,1,8,9),
array(1,3,9,11),
array(3,2,11,10),
array(0,4,2,6),
array(4,12,6,14),
array(12,14,8,10)
);
function searchFourTerms($leftArray, $GroupOfFour) {
global $GroupOfFour, $leftArray;
$len4 = count($leftArray);
$len4_carry = count($leftArray);
$list4 = array();
for($i4 = 0; $i4 < count($GroupOfFour); $i4 ++) {
$intercept4 = array_intersect($GroupOfFour[$i4], $leftArray);
$len4 = count($intercept4);
if (count($intercept4) % 4 == 0) {
$list4[$i4] = $len4;
}
}
arsort($list4);
if (empty($list4) || ($len4_carry<4))
return - 1;
return key($list4);
}
?>