본문 바로가기

비개발자의 개발 일지

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

시리즈 보기
php

PHP arsort — 값으로 내림차순 + 키 보존 정렬 완전 정리

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

 

 

Web Development · PHP arsort

PHP arsort —
값 내림차순 + 키 보존 정렬

매출이 높은 상품부터 위로 (상품명 라벨 유지)
시작 오늘 분석할 코드
<?php $sales = array("TV2" => "1000", "TV1" => "500", "RADIO1" => "800"); arsort($sales); // 값 내림차순 (메모의 "오름차순"은 오타) print "<PRE>"; print_r($sales); print "</PRE>"; ?>
실제 출력 결과
Array ( [TV2] => 1000 [RADIO1] => 800 [TV1] => 500 )
용어 용어 정리
arsort()a = associative + r = reverse — 값 내림차순 + 키 보존
키 보존상품명 등 의미 있는 키 유지
값 기준value 크기로 비교
반대asort — 값 오름차순
vs rsortrsort는 키 잃음
실무매출·점수 등 인기 순위
in-place원본 직접 수정
정렬 가족a/k 접두사 + 평행/r 접미사 조합

1 4가지 정렬 함수 한눈에
함수 기준 방향 키 보존 대표 활용
asort ↑ 오름 O 저렴한 순 가격
arsort ↓ 내림 O 매출 1위, 인기 순
ksort ↑ 오름 O 알파벳/연도 순
krsort ↓ 내림 O 최신 연도 위로

2 arsort의 동작
// 정렬 전 TV2 => 1000 TV1 => 500 RADIO1 => 800 // arsort 후 — 값 큰 것부터 TV2 => 1000 ← 1위 RADIO1 => 800 ← 2위 TV1 => 500 ← 3위

각 키-값 쌍은 그대로 유지된 채 자리만 재배치된다. 마치 표에서 "행 단위로 정렬"하는 것과 같은 동작.


3 활용 예 — TOP N 추출
$sales = ["TV2"=>1000, "TV1"=>500, "RADIO1"=>800]; arsort($sales); // TOP 2 추출 $top2 = array_slice($sales, 0, 2, true); // true = 키 보존 print_r($top2); // → [TV2 => 1000, RADIO1 => 800]

 

반응형

 

4 자주 하는 실수
실수 증상 해결
arsort 결과를 array_slice로 키 잃기 키가 0,1로 바뀜 array_slice의 4번째 인자 true
arsort 후 indexed로 다루려 함 foreach시 키가 비숫자 의도에 따라 array_values 사용
"500"·"1000" 문자열 → 사전식 "500" > "1000"으로 잘못 정렬 SORT_NUMERIC 플래그

핵심 한 줄 요약

arsort()값 내림차순 + 키 보존
결과큰 값부터 — TV2(1000), RADIO1(800), TV1(500)
a + r 접두사associative + reverse
vs rsortrsort는 키 잃음, arsort는 보존
활용랭킹, 매출 1위, 인기 순
in-place원본 직접 수정
TOP Narsort + array_slice($a, 0, N, true)
반응형

댓글