如何编写[find-array-in-array]函数?
伪代码
草垛:
array(0=a, 1=b, 2=a, 3=b, 4=c, 5=c, 6=a, 7=b, 8=d, 9=c, 10=a, 11=b, 12=a, 13=b, 14=c);
针:
array(a, b, c);
返回:
array ( array (2, 3, 4), array(12, 13, 14) )
期望:
Haystack中与Needle匹配的钥匙.上面应该给出2个匹配项:
>比赛=干草堆2-4
>比赛=干草堆12-14
它不应找到“ a b”,“ a b d”或“ c a b”等,
仅Needle中每个值的实例-按指定顺序.
我想使其成为一个函数,以便可以重复运行它(我有很多这样的模式).
我尝试过使用嵌套的foreach进行此操作,并用计数器等使自己发疯.
我到了某个地步,无法将比赛与不比赛分开.
(令人惊讶的是,没有内置函数?in_array和array_intersect似乎仅用于单个值,而不是集合?)
$haystack = array('a','b','a','b','c','d','a','b','c');
$needle = array('a','b','c');
$CountH = count($haystack); echo $CountH."
";
$CountN = count($needle); echo $CountN."
";
$matches ='';
foreach ($haystack as $key1=>$haystackval){
foreach ($needle as $key2=>$needleval) {
$fail = '0';
//if (in_array($needleval, $haystack)) {
if ($key2[$needleval] === $haystackval && $fail === '0') {
echo "Got needleval - ".$needleval ."
";
}
else { $fail='1';
}
}
}