배열 natsort
(PHP 4, PHP 5, PHP 7, PHP 8)
natsort — "자연 순서" 알고리즘을 사용하여 배열 정렬
설명
natsort(array &$array
): bool
이 함수는 키/값 연결을 유지하면서 사람이 하는 방식으로 영숫자 문자열을 정렬하는 정렬 알고리즘을 구현합니다. 이것은 "자연 순서"로 설명됩니다. 이 알고리즘과 일반 컴퓨터 문자열 정렬 알고리즘(sort()에 사용됨) 간의 차이점에 대한 예는 아래 예에서 볼 수 있습니다.
메모: 두 구성원이 같은 것으로 비교되면 원래 순서를 유지합니다. PHP 8.0.0 이전에는 정렬된 배열의 상대적 순서가 정의되지 않았습니다.
메모: 배열의 내부 포인터를 첫 번째 요소로 재설정합니다.
매개변수
array
- 입력 배열입니다.
반환 값
항상 true
를 반환합니다.
Examples
예제 #1 기본 사용법을 보여주는 natsort() 예제
<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
asort($array1);
echo "Standard sorting\n";
print_r($array1);
natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
?>
위의 예는 다음을 출력합니다.
Standard sorting Array ( [3] => img1.png [1] => img10.png [0] => img12.png [2] => img2.png ) Natural order sorting Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )
자세한 내용은 Martin Pool의 » Natural Order String Comparison 페이지를 참조하세요.
예제 #2 잠재적인 문제를 보여주는 natsort() 예제
<?php
echo "Negative numbers\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);
echo "Zero padding\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>
위의 예는 다음을 출력합니다.
Negative numbers Array ( [0] => -5 [1] => 3 [2] => -2 [3] => 0 [4] => -1000 [5] => 9 [6] => 1 ) Array ( [2] => -2 [0] => -5 [4] => -1000 [3] => 0 [6] => 1 [1] => 3 [5] => 9 ) Zero padding Array ( [0] => 09 [1] => 8 [2] => 10 [3] => 009 [4] => 011 [5] => 0 ) Array ( [5] => 0 [1] => 8 [3] => 009 [0] => 09 [2] => 10 [4] => 011 )
기타
- natcasesort() - 대소문자를 구분하지 않는 "자연 순서" 알고리즘을 사용하여 배열 정렬
- 배열 정렬 함수 비교
- strnatcmp() - "자연 순서" 알고리즘을 사용한 문자열 비교
- strnatcasecmp() - "자연 순서" 알고리즘을 사용한 대소문자 구분 문자열 비교