PHP 버전
4+
$students = [
    1005 => '김민지',
    1002 => '박서준',
    1008 => '이하나',
    1001 => '최윤서'
];

// 키(학번)를 기준으로 오름차순 정렬
ksort($students);

// 결과 출력
print_r($students);
출력
$products = [
    'banana' => 5000,
    'apple' => 1000,
    'cherry' => 2000
];

// 키(상품명) 기준 오름차순으로 정렬
ksort($products);

// 결과 출력
print_r($products);
출력
// PHP 8.2.0 전
ksort(array &$array, int $flags = SORT_REGULAR): true

// PHP 8.2.0부터
ksort(array &$array, int $flags = SORT_REGULAR): bool
$items_1 = [
    12      => 'a',
    'abc'   => 'b',
    '15'    => 'c',
    7       => 'd',
    'Banana'=> 'e'
];

ksort($items_1, SORT_NUMERIC);
// 키 기준 정렬 (SORT_NUMERIC)
// 배열의 모든 키를 숫자로 간주하여 오름차순 정렬
// 숫자로 변환할 수 없는 문자열 키('abc', 'Banana')는 0으로 취급되어 정렬 시 앞쪽에 위치
// 값(value)들은 그대로 유지됩니다.

var_dump($items_1);
/*
array(5) {
  ["abc"]=> string(1) "b"    // 숫자로 변환 불가 → 0 취급 → 가장 앞
  ["Banana"]=> string(1) "e" // 숫자로 변환 불가 → 0 취급 → 그 다음
  [7]=> string(1) "d"        // 숫자 키 7
  [12]=> string(1) "a"       // 숫자 키 12
  [15]=> string(1) "c"       // 문자열 '15' → 숫자 15로 변환 → 맨 뒤
}
*/

////////////////////

$items_2 = [
    12      => 'a',
    'abc'   => 'b',
    '15'    => 'c',
    7       => 'd',
    'Banana'=> 'e'
];

ksort($items_2, SORT_STRING); 
// 키 기준 정렬 (SORT_STRING)
// 배열의 모든 키를 문자열로 간주하여 사전식(lexicographical) 오름차순 정렬
// 값(value)들은 그대로 유지됩니다.

var_dump($items_2);
/*
array(5) {
  [12]=> string(1) "a"       // '12' 문자열로 변환해서 비교 → 숫자 형태의 문자열끼리는 작은 값이 앞에 위치함
  [15]=> string(1) "c"       // '15' → 숫자 형태의 문자열끼리는 작은 값이 앞에 위치함
  [7]=> string(1) "d"        // '7' 문자열로 변환해서 비교 → 숫자 형태의 문자열끼리는 작은 값이 앞에 위치함
  ["Banana"]=> string(1) "e" // 'Banana' → (숫자 형태의 문자열이 일반 문자열보다 작은 값이므로 숫자 형태의 문자열이 앞에 위치함)
  ["abc"]=> string(1) "b"    // 'abc'
}
*/