PHP에서 객체에 담긴 데이터를 다루다 보면, 값이 아닌 키(key)만 추출해서 출력해야 하는 경우가 종종 있습니다. 이번 글에서는 array_keys() 함수를 활용해 객체의 키를 간단하게 가져오는 방법을 알아보겠습니다.
예제 객체 준비하기
먼저 다음과 같은 직원 정보 객체가 있다고 가정해 보겠습니다.
$employeeDetails = (object) [
'firstName' => 'John',
'lastName' => 'Doe',
'countryName' => 'US'
];이 객체에서 우리가 얻고자 하는 결과는 다음과 같이 키 이름뿐입니다.
firstName lastName countryName
핵심: array_keys() 함수 사용하기
객체의 키만 출력하려면 PHP의 array_keys() 함수를 사용하면 됩니다. 다만 주의할 점은, 이 함수는 배열을 대상으로 동작하기 때문에 객체를 먼저 (array)로 형변환(casting)해야 한다는 것입니다.
전체 예제 코드
<!DOCTYPE html> <html> <body> <?php $employeeDetails = (object) [ 'firstName' => 'John', 'lastName' => 'Doe', 'countryName' => 'US' ]; // 객체를 배열로 변환한 뒤 키 목록을 추출 $allKeysOfEmployee = array_keys((array)$employeeDetails); echo "모든 키는 다음과 같습니다=", "<br>"; foreach($allKeysOfEmployee as &$tempKey) echo $tempKey, "<br>"; ?> </body> </html>
실행 결과
모든 키는 다음과 같습니다= firstName lastName countryName
코드 설명
위 코드의 핵심 흐름은 다음과 같습니다.
1. 객체 → 배열 변환: (array)$employeeDetails처럼 타입 캐스팅을 통해 객체를 연관 배열로 바꿉니다.
2. 키 추출: array_keys()가 배열의 모든 키를 담은 새로운 배열을 반환합니다.
3. 출력: foreach 반복문으로 각 키를 한 줄씩 화면에 출력합니다.
마무리
이처럼 PHP에서 객체의 키만 필요할 때는 (array) 캐스팅과 array_keys()를 조합하면 매우 간단하게 해결할 수 있습니다. 반대로 값(value)만 필요하다면 array_values() 함수를 사용하면 되며, 키와 값을 함께 순회하고 싶다면 foreach ($obj as $key => $value) 형태를 활용하는 것도 좋은 방법입니다.