PHP에서, strnatcasecmp 와 strtr은 매우 유용한 두 가지 기능이며, 전자는 자연 분류의 비교에 사용되며, 후자는 문자열의 치환 작업에 사용된다. 문자열 교체 후 자연스럽게 정렬 해야하는 경우이 두 기능을 결합하는 것이 매우 효과적입니다.
이 기사는 strtr을 사용하여 문자열의 문자를 대체하고 교체 후 strnatcasecmp를 사용하여 자연스럽게 정렬하는 방법을 보여줍니다.
strnatcasecmp 함수는 자연 분류 비교를 수행하기 위해 PHP에서 사용되는 함수입니다. 전통적인 사전 순서와 다르게 비교됩니다. 문자 순서뿐만 아니라 숫자 순서를 고려합니다. 예를 들어, "10"은 자연 순서로 "10"은 "2"보다 크기 때문에 "2"보다 앞서 있습니다.
기능 프로토 타입 :
int strnatcasecmp ( string $str1 , string $str2 )
str1 과 str2 는 비교할 두 줄입니다.
str1 이 str2 보다 작 으면 음의 값이 반환됩니다. 더 큰 경우 양수 값이 반환됩니다. 동일하면 0 리턴입니다.
strtr 함수는 문자열의 문자를 대체하는 데 사용됩니다. 두 가지 매개 변수를 수용합니다.
첫 번째 매개 변수는 교체 해야하는 대상 문자열입니다.
두 번째 매개 변수는 문자 맵으로, 다른 문자로 대체 할 문자를 지정합니다.
기능 프로토 타입 :
string strtr ( string $str , string $from , string $to )
예를 들어, 우리는 strtr을 사용하여 문자열의 문자를 다른 문자로 바꿀 수 있습니다.
다른 문자와 숫자가 포함 된 파일 이름을 포함하는 문자열 세트가 있다고 가정합니다. 특정 문자를 교체 한 후 자연스럽게 정렬하려면 strtr 함수를 사용하여 대상 문자를 먼저 교체 한 다음 strnatcasecmp 함수를 사용하여 정렬 할 수 있습니다.
예는 다음과 같습니다.
<?php
// 정렬 할 문자열 배열
$files = [
'file10.txt',
'file2.txt',
'file1.txt',
'file20.txt',
];
// 문자 교체 규칙을 정의하십시오
$trans = ['f' => 'F', 'e' => 'E'];
// 사용 strtr 캐릭터 교체를 수행하십시오
$transformed_files = array_map(function($file) use ($trans) {
return strtr($file, $trans);
}, $files);
// 사용 strnatcasecmp 자연스럽게 교체 된 문자열을 분류하십시오
usort($transformed_files, 'strnatcasecmp');
// 출력 정렬 결과
print_r($transformed_files);
?>
정의 할 문자열 배열 정의 : 먼저 파일 이름이 포함 된 배열 $ 파일을 정의합니다.
문자 교체 규칙 : 예를 들어, 문자열 문자 F 를 문자열의 문자열 F 로 바꾸고 문자 E를 대문자로 바꾸는 등 문자 교체 규칙을 정의합니다 .
교체 적용 : Array_Map 함수를 사용하여 각 파일 이름에 strtr을 적용하여 대체 된 파일 이름 배열을 가져옵니다.
자연 분류 : USORT 및 StrNATCASECMP 의 대체 된 파일 이름 배열을 정렬하여 자연 분류 규칙에 따라 배열됩니다.
출력 결과 : 마지막으로 Print_r을 통해 정렬 된 파일 이름 배열을 출력합니다.
strnatcasecmp 와 strtr을 결합함으로써 문자열의 문자를 교체 한 후 자연스러운 분류 순서를 유지할 수 있습니다. 이 방법은 파일 이름, 버전 번호 및 자연스러운 정렬이 필요한 기타 문자열을 처리 할 때 매우 유용합니다. 이 기사가 PHP 에서이 두 기능을 사용하여 문자열 교체 및 정렬을 처리하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.