回答
沒有測試過這一點,但這樣的事情應該做的:
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. 在數組中搜索值
- 3. 在Rails中搜索,也搜索非連續詞
- 4. 搜索數組值
- 5. 搜索數組值
- 6. 連續搜索查詢
- 7. 在數組中搜索並匹配值
- 8. C#在數組中搜索值
- 9. 在FIND_IN_SET中搜索的數組值
- 10. 在數組中搜索值javascript
- 11. 查找1D數組中連續標誌值的索引
- 12. 如何繼續搜索我的數組?
- 13. Angular2打字稿搜索數組中的數值從數組中搜索
- 14. PHP數組搜索值
- 15. 搜索數組值的PHP
- 16. 搜索值嵌套數組
- 17. 搜索值的數組
- 18. 搜索數組值匹配
- 19. 搜索數組的值
- 20. 在數組中搜索數組中的值並替換 - PHP
- 21. 在數組中搜索
- 22. 在php中搜索數組?
- 23. 在json數組中搜索
- 24. 在JavaScript中搜索數組
- 25. elasticsearch在數組中搜索
- 26. 在數組中搜索
- 27. Sails.js在數組中搜索
- 28. 在Java中搜索數組
- 29. Drupal在數組中搜索
- 30. Elasticsearch:在數組中搜索
有沒有重複的值? – hakre 2011-06-10 01:27:41
這兩個數組中都沒有重複的值 – babonk 2011-06-10 01:49:15