2012-01-20 3 views
1

PHP 나 MYSQL에서 어떻게 유사한 단어를 그룹화하거나 분리 할 수 ​​있을지 생각했습니다. 내가 삼성 Glaxy 에이스 가지고있는 것처럼 예를 들어, S120, S120, S120, S120 인식이 가능하다.PHP - 비슷한 단어로 그룹하기

이것도 가능합니까?

감사합니다.

답변

4

영숫자가 아닌 문자와 공백을 모두 제거하고 strtoupper() 문자열을 제거 할 수 있습니다.

$new_string = preg_replace("/[^a-zA-Z0-9]/", "", $string); 
$new_string = strtoupper($new_string); 
+1

그리고 당신은 복잡한 알고리즘의 촉각을 곤두 세우고있다한다면, 시도 [Damerau-Levenstein] (http://en.wikipedia.org/wiki/Damerau% E2 % 80 % 93Levenshtein_distance) – J0HN

+0

@ J0HN 그것은 참으로 멋진 알고리즘입니다. –

+2

및 [PHP 함수] (http://www.php.net/manual/en/function.levenshtein.php) – Herbert

2

그 중? 용이하게.

/S-?120/i 

그러나 확장하려면 REGEX에서 좀 더 정교한 것으로 옮겨야 할 것입니다.

2

여기서 가장 좋은 방법은 형식을 선택하고 표준화하는 것입니다. 예를 들어, S120을 저장하면 사용자로부터 값을 가져올 때 영숫자가 아닌 문자를 모두 제거하고 대문자로 변환합니다. 당신이 코드를 PHP에서이 작업을 수행 할 수 있습니다

:

$result = strtoupper(preg_replace('/(\W|_)+/', '', $userInput)); 
+0

감사합니다. 그것은 아주 잘 작동했습니다. –

관련 문제