Forum und email

natsort

(PHP 4, PHP 5)

natsort — "natural order" 알고리즘을 사용하여 배열을 정렬한다

설명

void natsort ( array $array )

이 함수는 인간의 방식으로 문자숫자 조합된 문자열을 정렬하는 알고리즘으로 구현되었다. 이 알고리즘을 "natural ordering"이라고 한다. 이 알고리즘과 일반적인 컴퓨터 문자열 정렬 알고리즘 (sort()를 사용) 사이의 차이점의 예는 다음 예제코드에서 확인할수 있다:

Example#1 natsort() 예제코드

<?php
$array1 
$array2 = array ("img12.png""img10.png""img2.png""img1.png");

sort($array1);
echo 
"Standard sorting\n";
print_r($array1);

natsort($array2);
echo 
"\nNatural order sorting\n";
print_r($array2);
?>

위 코드는 다음의 출력을 생성할것이다:

Standard sorting
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order sorting
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

추가 정보: Martin Pool의 » Natural Order String Comparison 페이지.

Note: index/value 연관을 유지시키려면, uasort($arr, 'strnatcmp') 사용을 고려하도록 한다.

natcasesort(), strnatcmp(), strnatcasecmp() 참고.