본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP rsort — 배열 내림차순 정렬 완전 정리

by 왕진 2026. 6. 14.
반응형

 

 

Web Development · PHP rsort

PHP rsort —
배열을 큰 값 → 작은 값 순서로 정렬

[18,7,20,5] → [20,18,7,5] (내림차순)
시작 오늘 분석할 코드

sort의 정반대 방향. 큰 값부터 정렬한다. 이름의 r은 reverse(반대) 의미.

<?php $numbers = array(18, 7, 20, 5); rsort($numbers); // 내림차순 정렬 (원본 메모는 "오름차순"이라 잘못 적혀 있음) print "<PRE>"; print_r($numbers); print "</PRE>"; ?>
실제 출력 결과
Array ( [0] => 20 [1] => 18 [2] => 7 [3] => 5 )
※ 원본 메모의 "오름차순"은 오타다. rsort내림차순(큰 값부터). 헷갈리면 sort가 작은 것 위주, rsort는 큰 것 위주로 기억.
용어 용어 정리
rsort()배열을 내림차순으로 정렬 (값 기준)
r = reverse"sort의 반대 방향" 의미
내림차순큰 값 → 작은 값 (descending)
in-place원본을 직접 수정
키 재배열정렬 후 0,1,2,… 새로 매김
vs arsortarsort는 키를 보존하면서 내림차순
반환값true (성공) — 받지 않는 게 일반
실무 예최고 점수, 최신 날짜 위로 정렬

1 언제 내림차순이 필요한가?
예시 시나리오
· 게시판: 최신 글이 위로 (날짜 내림차순)
· 랭킹: 점수 높은 순 (점수 내림차순)
· 인기순: 조회수 많은 순
· 가격 비교: 비싼 순부터

2 sort vs rsort 한눈에
sort (오름)
[18, 7, 20, 5] → [5, 7, 18, 20]
가장 작은 값이 [0]번에
rsort (내림)
[18, 7, 20, 5] → [20, 18, 7, 5]
가장 큰 값이 [0]번에

3 동작 방식 — sort 후 뒤집기와 같음
// rsort($arr)는 사실상 sort($arr); $arr = array_reverse($arr); // 와 같은 결과

물론 PHP는 내부적으로 한 번에 처리하므로 더 효율적이다.


 

반응형

 

4 키도 0,1,2…로 새로 매겨진다
$arr = [0=>18, 1=>7, 2=>20, 3=>5]; rsort($arr); // → [0=>20, 1=>18, 2=>7, 3=>5] ← 키 재배열
※ 원래의 키-값 짝을 유지하고 싶으면 arsort를 써야 한다 (다음 글 참고).

5 두 번째 매개변수 — 정렬 플래그
rsort($arr, SORT_NUMERIC); // 수치형 강제 rsort($arr, SORT_STRING); // 문자열 비교 rsort($arr, SORT_NATURAL); // "img10" > "img2" 식 자연 정렬

6 자주 하는 실수
실수 증상 해결
$arr = rsort($arr); $arr가 true(=1)로 덮임 rsort($arr); 한 줄
연관 배열에 rsort 키가 사라짐 arsort 사용
"10","9" 정렬 "9" 먼저 (사전식) SORT_NUMERIC 추가
한국어 가나다순 기대 예측 불가 (UTF-8 ASCII) collator_sort (Intl)

핵심 한 줄 요약

rsort()배열을 내림차순(큰 → 작은)으로 정렬
r = reversesort의 반대 방향
in-place원본 직접 수정 — 반환값 받지 말 것
키 재배열0,1,2,… 새로 부여
실무최신글·랭킹·인기순
키 보존하려면arsort 사용
플래그SORT_NUMERIC, SORT_NATURAL 등
반응형

댓글