
ArrayObject::ksort 함수는 키를 기준으로 오름차순으로 정렬하는 함수입니다. 이 함수는 키가 문자열인 경우에만 작동합니다. 숫자 키는 정렬되지 않습니다.
예를 들어, 다음과 같은 배열이 있을 때, ArrayObject::ksort 함수를 사용하여 정렬한 결과는 다음과 같습니다.
#hostingforum.kr
php
$array = [
'3' => '세',
'1' => '일',
'2' => '이',
];
$array->ksort();
print_r($array);
출력 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[1] => 일
[2] => 이
[3] => 세
)
위의 예시에서 볼 수 있듯이, ArrayObject::ksort 함수는 키가 문자열인 경우에만 작동합니다. 숫자 키인 '3'은 정렬되지 않습니다.
키가 숫자인 경우 정렬 순서를 유지하려면, 키를 문자열로 변환하여 정렬해야 합니다. 예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$array = [
'3' => '세',
'1' => '일',
'2' => '이',
];
$array = array_map(function($key, $value) {
return [$key, $value];
}, array_keys($array), $array);
usort($array, function($a, $b) {
return $a[0] <=> $b[0];
});
$array = array_column($array, 1, 0);
print_r($array);
출력 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[1] => 일
[2] => 이
[3] => 세
)
위의 예시에서 볼 수 있듯이, 키가 숫자인 경우 정렬 순서를 유지하려면, 키를 문자열로 변환하여 정렬해야 합니다.
2025-08-15 20:53