반응형
Web Development · PHP asort
PHP asort —
값으로 오름차순 정렬 + 키 보존
연관 배열을 정렬하면서 어느 키가 어디로 갔는지 추적 가능
시작 오늘 분석할 코드
각 상품의 매출이 담긴 연관 배열을 매출이 적은 순서로 정렬하되 "어느 상품인지"를 잊지 않는다. 키(상품명)와 값(매출)이 한 쌍을 유지한 채 자리만 바뀐다.
<?php $sales = array("TV2" => "1000", "TV1" => "500", "RADIO1" => "800"); asort($sales); // 값으로 오름차순 (메모의 "내림차순"은 오타) print "<PRE>"; print_r($sales); print "</PRE>"; ?>
실제 출력 결과
Array ( [TV1] => 500 [RADIO1] => 800 [TV2] => 1000 )
용어 용어 정리
asort()a = associative — 연관 배열을 값으로 오름 정렬
키 보존정렬 후에도 원래 키 유지
값 기준value의 크기로 비교
vs sortsort는 키를 0,1,2,…로 재배열
vs ksort키 기준 정렬
arsortasort의 내림차순 버전
in-place원본 배열 직접 수정
실무 예상품별 매출 정렬 + 상품명 유지
1 sort와 asort의 결정적 차이
sort 사용 시
[TV1=>500, RADIO1=>800, TV2=>1000]키가 0,1,2로 사라짐
"누구의 매출 500인지" 모름
asort 사용 시
키가 그대로 따라옴
[TV1=>500, RADIO1=>800, TV2=>1000]
"500은 TV1" — 정보 보존
[TV1=>500, RADIO1=>800, TV2=>1000]
"500은 TV1" — 정보 보존
연관 배열(키-값 쌍)을 다룰 때는 asort가 필수다.
sort는 인덱스 배열에만 안전하게 쓸 수 있다.2 동작 방식
// 정렬 전 TV2 => 1000 TV1 => 500 RADIO1 => 800 // 값으로 오름차순 정렬 (키는 따라감) TV1 => 500 ← 값 500 가장 작아서 맨 위 RADIO1 => 800 ← 다음 TV2 => 1000 ← 마지막
3 정렬 가족 — 4종 비교
| 함수 | 기준 | 방향 | 키 보존 |
|---|---|---|---|
asort |
값 | 오름 | O |
arsort |
값 | 내림 | O |
ksort |
키 | 오름 | O |
krsort |
키 | 내림 | O |
sort |
값 | 오름 | X |
rsort |
값 | 내림 | X |
반응형
4 자주 하는 실수
| 실수 | 증상 | 해결 |
|---|---|---|
asort 후 foreach로 0번부터 기대 |
키가 그대로라 인덱스 순서 X | foreach($arr as $k=>$v)로 키 활용 |
| $sales의 값이 문자열 "1000" | SORT_REGULAR가 알아서 처리(보통 OK) | 의심되면 SORT_NUMERIC 명시 |
| asort 후 array_values 안 하고 JSON 인코딩 | JS 측에 객체로 넘어갈 수 있음 | 의도 확인하고 array_values 사용 |
핵심 한 줄 요약
asort()값으로 오름차순 + 키 보존
a = associative연관 배열용
결과[TV1=>500, RADIO1=>800, TV2=>1000]
vs sortsort는 키 잃음, asort는 유지
in-place원본 직접 수정
반대arsort — 값 내림차순
실무매출·점수·인기도 등 라벨 보존 정렬
반응형
'php' 카테고리의 다른 글
| PHP ksort — 키 기준 오름차순 정렬 완전 정리 (0) | 2026.06.14 |
|---|---|
| PHP arsort — 값으로 내림차순 + 키 보존 정렬 완전 정리 (0) | 2026.06.14 |
| PHP rsort — 배열 내림차순 정렬 완전 정리 (0) | 2026.06.14 |
| PHP sort — 배열 오름차순 정렬 완전 정리 (0) | 2026.06.14 |
| PHP nl2br — 줄바꿈을 <br>태그로 완전 정리 (0) | 2026.06.14 |
왕진 블로그

댓글