回答
没有测试过这一点,但这样的事情应该做的:
function consecutive_values(array $needle, array $haystack) {
$i_max = count($haystack)-count($needle);
$j_max = count($needle);
for($i=0; $i<$i_max; ++$i) {
$match = true;
for($j=0; $j<$j_max; ++$j) {
if($needle[$j]!=$haystack[$i+$j]) {
$match = false;
break;
}
}
if($match) {
return $i;
}
}
return -1;
}
这比我的方法要好。测试。作品。 – Nemoden 2011-06-10 01:07:18
这可能是次优的,但相当简洁:
$needle = array('a', 'b');
$haystack = array('x', 'a', 'b', 'c');
function searchInArray($haystack, $needle)
{
$keys = array_search($haystack, $needle[0]);
foreach ($keys as $key) {
$endPos = $key + count($needle);
for ($i=1; $i<$count($needle); $i++) {
if ($needle[$i] == $haystack[$key + $i]) {
return $key;
}
}
}
return false;
}
你在第一场比赛中返回......他们*全部*需要匹配。 – mpen 2011-06-10 05:20:42
这确实你问什么,因为所有数组都必须是非键控的,并且具有唯一值,所以它具有一定的特定性。
此外,在此版本中,数组只能包含整数或字符串值。如果您还需要任何NULL,对象,浮点数组和数组,它的一部分需要从array_flip()
+ isset()
更改为array_search()
。
相关部分是比较您搜索的(这里$in
)的阵列与阵列的你搜索(这里$for
)切片:
array_slice($in, $pos, $len) === $for
$pos
一直第一个值为$for
,$len
的值为count($for)
。
请将您代码的相关部分发布在您的答案中(除了链接到演示)。 – 2011-06-10 02:51:30
- 1. 在数组中搜索值
- 2. 查找1D数组中连续标志值的索引
- 3. Angular2打字稿搜索数组中的数值从数组中搜索
- 4. 搜索值嵌套数组
- 5. 搜索数组值的PHP
- 6. 在JavaScript中搜索数组
- 7. Elasticsearch:在数组中搜索
- 8. Sails.js在数组中搜索
- 9. 在php中搜索数组?
- 10. 在数组中搜索Postgres数组
- 11. PHP - 在数组中搜索数组
- 12. 多维数组中的搜索值
- 13. 如何从数组中搜索值
- 14. 搜索过滤中Angularjs与数组值
- 15. 如何搜索JavaScript数组中的值?
- 16. excel vba - 搜索数组中的值
- 17. 如何搜索数组树中的值?
- 18. 跨连续列的全文搜索?
- 19. NSRange非连续字符串搜索
- 20. 在文件的字符数组中搜索2个连续的十六进制值
- 21. 如何搜索2D数组以确保连续字符数不超过3个?
- 22. 在Python中连续保存2D数组
- 23. 用用户表格连续搜索和更新值
- 24. Lucene:在一个句子中搜索特定的连续单词组
- 25. 搜索多个数组值和计数的搜索结果
- 26. 搜索PHP函数读取数组值
- 27. 搜索数组
- 28. 如何搜索在XML文件中的两个连续元素
- 29. 在NumPy数组中连续值的总和
- 30. 在二维数组中匹配连续值
有没有重复的值? – hakre 2011-06-10 01:27:41
这两个数组中都没有重复的值 – babonk 2011-06-10 01:49:15