このトピックについて投稿するのはこれで 3 回目です。ユーザーの馬場さんにはいつもお世話になっています。SO Web サイトにはユーザー メッセージ システムがないため (残念ながら)、投稿内で質問しています。また。
ユーザー 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);
}
?>