현재 위치: > 최신 기사 목록> strnatcasecmp를 사용하여 영숫자 파일을 영숫자로 정렬하는 방법은 무엇입니까?

strnatcasecmp를 사용하여 영숫자 파일을 영숫자로 정렬하는 방법은 무엇입니까?

gitbox 2025-05-29

파일 이름으로 작업 할 때는 자연스럽게 영숫자를 정렬 해야하는 시나리오가 발생합니다. 종종 분류 결과에 문제가있을 수 있습니다. 예를 들어, 알파벳 순서에 따라 "file10.txt"는 문자열 정렬이 문자 문자 순서를 기반으로하기 때문에 "file2.txt"보다 앞서있을 수 있습니다. 자연 분류를 달성하기 위해, 즉 숫자를 실제 크기로 정렬하게하려면 PHP의 strnatcasecmp 함수를 사용할 수 있습니다. 이 기사에서는이 기능을 사용하여 알파럼 적 자연의 파일 이름 분류를 구현하는 방법을 자세히 설명합니다.

strnatcasecmp 함수는 무엇입니까?

strnatcasecmp는 사례에 민감한 영숫자 자연 분류 ( "자연 순서"라고도 함)를 수행하기위한 PHP의 내장 기능입니다. 기존 문자열 비교 함수와 달리 strnatcasecmp는 숫자 부품을 문자 별 character ascii 값보다는 숫자 크기로 비교합니다.

strnatcasecmp 의 구문

 strnatcasecmp(string $string1, string $string2): int
  • $ string1 : 비교할 첫 번째 문자열.

  • $ string2 : 비교할 두 번째 문자열.

이 함수는 다음 값을 반환합니다.

  • $ string1$ String2 보다 작 으면 음의 정수가 반환됩니다.

  • $ string1$ String2 와 같으면 반환 0;

  • $ String1$ String2 보다 큰 경우 양수 정수가 반환됩니다.

영숫자 자연의 파일 이름을 구현하는 방법은 무엇입니까?

파일 이름이 포함 된 배열이 있다고 가정하면 strnatcasecmp를 사용하여 파일 이름을 정렬 할 수 있습니다. 특정 단계는 다음과 같습니다.

  1. 파일 이름 배열을 가져옵니다.

  2. USORT 함수를 사용하여 strnatcasecmp를 결합하여 파일 이름 배열을 정렬하십시오.

샘플 코드 :

 <?php
// 파일 이름 배열
$files = [
    "file1.txt",
    "file10.txt",
    "file2.txt",
    "file12.txt",
    "file11.txt",
];

// 사용 strnatcasecmp 자연스러운 분류를하십시오
usort($files, function($a, $b) {
    return strnatcasecmp($a, $b);
});

// 정렬 된 파일 이름을 출력하십시오
foreach ($files as $file) {
    echo $file . "\n";
}
?>

코드 설명 :

  1. 배열 정의 : 먼저 숫자 크기별로 정렬 할 수있는 파일 이름이 포함 된 배열 $ 파일을 정의합니다.

  2. 자연 분류 : USORT 기능을 사용하여 배열을 정렬하십시오. USORT에는 배열의 각 요소 쌍을 비교하기 위해 콜백 기능이 필요합니다. 자연 분류를 위해 콜백 함수에서 strnatcasecmp를 사용합니다.

  3. 출력 정렬 된 파일 이름 : 정렬 한 후 Foreach to loop to roop to roop to roop to roop to root to root witt witt wital wital witing with national with

strnatcasecmp를 선택합니까?

다른 문자열 비교 함수와 비교하여 strnatcasecmp는 숫자가 포함 된 파일 이름을 올바르게 처리 할 수 ​​있습니다. 문자 비교보다는 숫자를 숫자 크기로 정렬합니다. 이것은 "file10"이 "file2"앞에 순위가 매겨진 문제를 피합니다.

샘플 출력 :

위의 코드를 실행하면 출력이 다음과 같습니다.

 file1.txt
file2.txt
file10.txt
file11.txt
file12.txt

보시다시피 파일 이름은 자연 영숫자 순서로 정렬됩니다.

URL에서 파일 이름을 처리합니다

일부 시나리오에서는 URL에서 파일 이름을 가져 와서 정렬해야 할 수도 있습니다. URL에 파일 이름이 포함 된 경우 먼저 URL을 구문 분석하여 파일 이름을 추출한 다음 StrnatcaseCMP를 사용하여 정렬 할 수 있습니다. 예를 들어 URL에 파일 경로가 포함 된 경우 Parse_urlBasename을 사용하여 파일 이름을 얻을 수 있습니다.

다음 URL이 있다고 가정합니다.

 <?php
// URL 정렬
$urls = [
    "https://gitbox.net/files/file1.txt",
    "https://gitbox.net/files/file10.txt",
    "https://gitbox.net/files/file2.txt",
];

// 파일 이름 추출并자연스러운 분류를하십시오
usort($urls, function($a, $b) {
    // 파일 이름 추출
    $fileA = basename(parse_url($a, PHP_URL_PATH));
    $fileB = basename(parse_url($b, PHP_URL_PATH));

    // 사용 strnatcasecmp 파일 이름을 비교하십시오
    return strnatcasecmp($fileA, $fileB);
});

// 출력 정렬 URL
foreach ($urls as $url) {
    echo $url . "\n";
}
?>

프로세스 URL 설명 :

  1. 먼저 URL이 포함 된 배열 $ URL을 정의합니다.

  2. parse_url 함수를 사용하여 URL에서 경로 부분을 추출한 다음 Basename을 사용하여 파일 이름을 얻습니다.

  3. strnatcasecmp를 사용하여 파일 이름을 자연스럽게 정렬하십시오.

샘플 출력 :

 https://gitbox.net/files/file1.txt
https://gitbox.net/files/file2.txt
https://gitbox.net/files/file10.txt

요약

PHP에서 strnatcasecmp 함수를 사용하면 파일 이름의 영숫자 순서를 쉽게 구현하여 파일 이름의 숫자 부분이 숫자 크기로 정렬되도록합니다. 파일 이름 배열을 정렬하든 URL에서 파일 이름을 추출하고 정렬하든 StrnatcaseCMP는 올바른 정렬 결과를 얻는 데 도움이 될 수 있습니다.

이 기사가 Strnatcasecmp 기능의 사용을 이해하는 데 도움이되기를 바랍니다. 질문이 있으시면 언제든지 질문하십시오!