현재 위치: > 최신 기사 목록> 자연 분류 필터링에 strnatcasecmp 및 array_filter 함수를 사용하는 방법은 무엇입니까?

자연 분류 필터링에 strnatcasecmp 및 array_filter 함수를 사용하는 방법은 무엇입니까?

gitbox 2025-05-20

PHP에서, strnatcasecmparray_filter 함수는 각각 자연 분류 및 배열 필터링을위한 매우 실용적인 두 가지 도구입니다. 이 두 기능을 결합하여 특히 문자열이 포함 된 배열을 정렬하고 필터링 할 때 배열의 자연스러운 정렬 및 필터링을 쉽게 구현할 수 있습니다. 그들의 조합은 코드의 가독성과 효율성을 크게 향상시킬 수 있습니다.

1. strnatcasecmp 함수 소개

strnatcasecmp 함수는 두 줄을 비교하고 "자연 분류"순서대로 차이를 반환하는 데 사용됩니다. 소위 "자연 분류"는 인간 습관의 순서로 분류하는 것을 의미합니다. 예를 들어, 문자열 "2"는 "10"보다 앞서 있으며 사전 순서와 다릅니다. 이 기능은 사례를 무시하고 자연 순서로 정렬 해야하는 경우에 적합합니다.

문법:

 strnatcasecmp(string $str1, string $str2): int
  • str1 : 첫 번째 문자열.

  • str2 : 두 번째 문자열.

반환 값 : $ str1이 $ str2 미만인 경우 음수를 반환하십시오. 동일하면 0을 반환합니다. $ str2 보다 큰 경우 양수를 반환하십시오.

2. Array_Filter 기능 소개

Array_Filter 함수는 배열에서 요소를 필터링하는 데 사용됩니다. 주어진 콜백 함수에 따라 배열을 가로 지르고 기준을 충족하는 요소를 반환합니다. 이 기능은 특정 규칙을 준수하는 배열 요소를 필터링하는 데 매우 적합합니다.

문법:

 array_filter(array $array, callable $callback, int $mode = 0): array
  • $ 배열 : 입력 배열.

  • $ 콜백 : 필터링에 사용되는 콜백 기능. 콜백 함수가 제공되지 않으면 Array_Filter는 False 값으로 모든 요소를 ​​제거합니다.

  • $ 모드 : 옵션, 배열에서 키를 처리하는 방법을 지정합니다. 기본값은 0이므로 원래 배열을 유지하는 키를 의미합니다.

반환 값 : 필터링 배열.

3. 자연 분류 및 필터링의 적용 예

숫자와 문자가 모두있는 일부 파일 이름이 포함 된 배열이 있다고 가정합니다. 이러한 파일 이름을 자연스럽게 정렬하고 특정 키워드 (예 : "테스트"와 같은 파일을 필터링하기를 원합니다.

샘플 코드 :

 <?php

// 파일 이름 배열이 있다고 가정합니다
$files = [
    "file10.txt",
    "file2.txt",
    "file1.txt",
    "testFile1.txt",
    "testFile2.txt",
    "file20.txt"
];

// 사용array_filter포함을 필터링하십시오"test"파일
$filteredFiles = array_filter($files, function($file) {
    return stripos($file, 'test') !== false;
});

// 사용strnatcasecmp자연스러운 분류를하십시오
usort($filteredFiles, 'strnatcasecmp');

// 输出筛选和排序后파일列表
echo "筛选和排序后파일列表:\n";
foreach ($filteredFiles as $file) {
    echo $file . "\n";
}

?>

코드 구문 분석 :

  1. 필터 파일 : Array_Filter 함수를 사용하여 배열을 필터링하고 "테스트"가 포함 된 파일 이름을 필터링합니다. Stripos 함수는 파일 이름에 "테스트"가 포함되어 있는지 확인하는 데 사용됩니다.

  2. 자연 정렬 : 다음으로 USORT 기능을 사용하여 필터링 된 파일을 자연스럽게 정렬하십시오. USORT는 비교 기능을 인수로 받아들입니다. 여기서 우리는 자연 분류에 strnatcasecmp를 사용합니다.

  3. 출력 결과 : 마지막으로 필터링 된 파일 이름을 출력합니다.

실행 결과 :

 筛选和排序后파일列表:
testFile1.txt
testFile2.txt

4. 요약

strnatcasecmparray_filter 함수를 결합함으로써 배열에서 자연스럽게 편리하게 정렬하고 필터를 필터링 할 수 있습니다. Strnatcasecmp는 인간 습관의 분류 방법을 제공하는 반면 Array_filter를 사용 하면 기준을 충족하는 요소를 효율적으로 필터링 할 수 있습니다. 이 둘의 조합은 코드를 단순화하고 읽기 성을 향상시킬 수 있으며, 정렬 및 필터링 작업이 필요한 다양한 시나리오에 적합합니다.