반응형
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)
반응형
'php' 카테고리의 다른 글
| PHP krsort — 키 기준 내림차순 정렬 완전 정리 (0) | 2026.06.14 |
|---|---|
| PHP ksort — 키 기준 오름차순 정렬 완전 정리 (0) | 2026.06.14 |
| PHP asort — 값으로 오름차순 + 키 보존 정렬 완전 정리 (0) | 2026.06.14 |
| PHP rsort — 배열 내림차순 정렬 완전 정리 (0) | 2026.06.14 |
| PHP sort — 배열 오름차순 정렬 완전 정리 (0) | 2026.06.14 |
왕진 블로그

댓글