PHP에서 연관 배열(문자열 키)을 숫자 키를 가진 배열로 변환하고 싶다면 foreach 반복문과 대괄호 []를 함께 사용한 뒤, 마지막에 array_values() 메서드를 적용하면 됩니다.
핵심 개념
연관 배열의 특정 값을 새 배열의 키로 지정하면서 데이터를 재구성하면, 원래 문자열이었던 키가 사용자 정의 키로 바뀌게 됩니다. 이때 array_values() 함수를 호출하면 모든 키가 제거되고 0부터 시작하는 숫자 인덱스로 다시 매겨진 배열을 얻을 수 있습니다.
예제 코드
<!DOCTYPE html>
<html>
<body>
<?php
$details = [
[
"id" => "10001",
"firstName" => "John",
"lastName" => "Doe"
],
[
"id" => "10002",
"firstName" => "David",
"lastName" => "Miller"
]
];
foreach ($details as $k=> $v) {
$someDetails[$v['id']][] = ['LASTNAME' => $v['lastName'], 'FIRSTNAME'=> $v['firstName']];
}
print_r(array_values($someDetails));
?>
</body>
</html>코드 설명
위 예제에서는 각 사용자의 id 값을 임시 키로 사용해 성(LASTNAME)과 이름(FIRSTNAME) 정보를 새 배열에 담습니다. 그런 다음 array_values()를 호출하여 '10001', '10002' 같은 문자열 키를 제거하고 0, 1로 시작하는 숫자 키로 변환합니다.
실행 결과
Array ( [0] => Array ( [0] => Array ( [LASTNAME] => Doe [FIRSTNAME] => John ) ) [1] => Array ( [0] => Array ( [LASTNAME] => Miller [FIRSTNAME] => David ) ) )
출력 결과를 보면 각 요소가 숫자 인덱스(0, 1)를 가진 배열로 깔끔하게 재구성된 것을 확인할 수 있습니다. 이 방식은 JSON 응답을 만들거나 데이터를 정렬·순회할 때 특히 유용합니다.