본문 바로가기

비개발자의 개발 일지

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

시리즈 보기
php

PHP asort — 값으로 오름차순 + 키 보존 정렬 완전 정리

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

 

 

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" — 정보 보존
연관 배열(키-값 쌍)을 다룰 때는 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 — 값 내림차순
실무매출·점수·인기도 등 라벨 보존 정렬
반응형

댓글