다른 문자열 내에서 문자열의 발생을 찾는 데 도움이되는 효율적인 PHP 알고리즘을 작성하는 데 도움을 찾고 있습니다. 여기에 현재 상황이 있습니다.PHP 문자열을 검색하기 위해 배열을 반복하는 좋은 알고리즘입니까?
두 개의 어레이가 있습니다. 첫 번째 배열은 검색이 필요한 텍스트가있는 배열입니다 (haystack). 두 번째 배열은 find (needle)이라는 용어의 배열입니다.
첫 번째 배열에는 적어도 바늘에서 내 조건이 하나 있다는 것을 알고 있습니다. 따라서 알고리즘은 'array2 [0]이 array1 [0] 안에 있다고 말합니까? 그렇지 않다면, loop, array2 [1]이 array1 [0], inside '안에 있습니다. 발견되면, array1 [1] 포인터를 끝내고 과정을 반복하십시오.
저는이 값이 1000s 인 항목을 10 가지 값으로 계산할 수 있으며, 바늘 배열에는 1100 개의 개별 바늘이 있습니다.
[Boyer-Moore 알고리즘] (http://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm) 또는 그 변형 중 하나를 찾고 있습니다. - 그들은 대략 ** O (N) ** 복잡성을 가지고 있습니다. 원본을 사용하면 동일한 바늘을 많이 재사용하면 시간을 절약 할 수있는 사전 처리 단계를 캐시 할 수 있습니다. – millimoose
(http://johannburkard.de/software/stringsearch/)에는 PHP 알고리즘을 구현하거나 기존의 알고리즘을 검색 할 수있는 적절한 알고리즘이 많이 있습니다. – millimoose