2017-05-16 6 views
1

다른 길이의 영숫자 문자열이있는 배열을 정렬하려고합니다.PHP strnatcasecmp() 비정상적인 동작

>>> strnatcasecmp("IG2349", "IG56LR1617617") 
=> 1 

당신이 볼 수 있듯이이 결과는 "IG2349은" "IG56LR1617617"보다 큰한다고, 그래서 "IG56LR1617617은"정렬 후 "IG2349"전에 나타납니다 :이 비교에 어려움에 봉착했습니다.

그러나 2 개 개의 제 1 문자 (동일) 제 번째 문자열보다 제 문자열에 하부이므로, 결과 < 1.

이 테스트되고 있어야 후에 문자열을 살펴보면 PHP 5.6.20. 대신 자연의

답변

0

사용 바이너리 안전 비교 strcasecmp는 :

strcasecmp("IG2349", "IG56LR1617617"); 
+0

나도 알아,하지만 난 "G1"그래서 자연의 비교가 필요합니다 "G10"전에 온다. – underdpt