php
PHP - natcasesort 함수
bool natcasesort ( array &$array )
(PHP 4, PHP 5)
이 함수는 키/값 연결을 유지하면서 알파벳, 숫자, 문자열을 정렬하는 알고리즘을 구현합니다. 이 알고리즘을 "자연순"이라고 말합니다. 이 함수는 성공할 경우 true를, 실패하면 false를 반환합니다.
이 함수는 배열 값을 알파벳순으로 정열해 주지만, 아쉽게도 배열 키는 정렬되지 않습니다. 정렬이 필요하다면 다음과 같이 array_values함수를 사용하여도 괜찮습니다.
[자연순] 정렬 우선 순위는 다음과 같습니다.
1-2 < 1-02 < 1-20 < 10-20 < fred < jane < pic01 < pic2 < pic02 < pic02a < pic3 < pic4 < pic 4 else < pic 5 < pic05 < pic 5 < pic 5 something < pic 6 < pic 7 < pic100 < pic100a < pic120 < pic121 < pic02000 < tom < x2-g8 < x2-y7 < x2-y08 < x8-y8
.외 추가 참고 자료는 아래 링크를 참고하세요.
http://sourcefrog.net/projects/natsort/
(PHP 4, PHP 5)
이 함수는 키/값 연결을 유지하면서 알파벳, 숫자, 문자열을 정렬하는 알고리즘을 구현합니다. 이 알고리즘을 "자연순"이라고 말합니다. 이 함수는 성공할 경우 true를, 실패하면 false를 반환합니다.
<?php
$array1 = $array2 = $array3 = array(
'IMG0.png', 'img12.png', 'img10.png', 'img2.png',
'img1.png', 'IMG3.png'
);
sort($array1);
echo "일반 정렬\n";
print_r($array1);
/*
결과:
일반 정렬
Array
(
[0] => IMG0.png
[1] => IMG3.png
[2] => img1.png
[3] => img10.png
[4] => img12.png
[5] => img2.png
)
*/
// 이 함수는 대소문자 구분없이 정렬합니다.
// 대소문자 구분이 필요하면, natsort를 사용해야 합니다.
natcasesort($array2);
echo "\n자연순 정렬 (대소문자 구분 없음)\n";
print_r($array2);
/*
결과:
자연순 정렬 (대소문자 구분 없음)
Array
(
[0] => IMG0.png
[4] => img1.png
[3] => img2.png
[5] => IMG3.png
[2] => img10.png
[1] => img12.png
)
*/
natsort($array3);
echo "\n자연순 정렬\n";
print_r($array3);
/*
결과:
자연순 정렬
Array
(
[0] => IMG0.png
[5] => IMG3.png
[4] => img1.png
[3] => img2.png
[2] => img10.png
[1] => img12.png
)
*/
?>
이 함수는 배열 값을 알파벳순으로 정열해 주지만, 아쉽게도 배열 키는 정렬되지 않습니다. 정렬이 필요하다면 다음과 같이 array_values함수를 사용하여도 괜찮습니다.
<?php
$array1 = $array2 = array(
'IMG0.png', 'img12.png', 'img10.png', 'img2.png',
'img1.png', 'IMG3.png');
natcasesort($array1);
echo "\n자연순 정렬 (대소문자 구분 없음)\n";
print_r(array_values($array1));
/*
결과:
자연순 정렬 (대소문자 구분 없음)
Array
(
[0] => IMG0.png
[1] => img1.png
[2] => img2.png
[3] => IMG3.png
[4] => img10.png
[5] => img12.png
)
*/
natsort($array2);
echo "\n자연순 정렬\n";
print_r(array_values($array2));
/*
결과:
자연순 정렬
Array
(
[0] => IMG0.png
[1] => IMG3.png
[2] => img1.png
[3] => img2.png
[4] => img10.png
[5] => img12.png
)
*/
?>
[자연순] 정렬 우선 순위는 다음과 같습니다.
1-2 < 1-02 < 1-20 < 10-20 < fred < jane < pic01 < pic2 < pic02 < pic02a < pic3 < pic4 < pic 4 else < pic 5 < pic05 < pic 5 < pic 5 something < pic 6 < pic 7 < pic100 < pic100a < pic120 < pic121 < pic02000 < tom < x2-g8 < x2-y7 < x2-y08 < x8-y8
.외 추가 참고 자료는 아래 링크를 참고하세요.
http://sourcefrog.net/projects/natsort/
0 댓글