배열 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
)
                

기타