PHP의 array_keys() 함수는 배열에 포함된 모든 키(key)를 배열 형태로 반환하는 내장 함수입니다. 연관 배열에서 키만 별도로 추출해야 할 때 매우 유용하게 사용됩니다.
문법
array_keys(arr, value, strict)
매개변수
arr − 키를 추출할 대상 배열입니다.
value − 특정 값을 지정하면, 해당 값과 일치하는 요소의 키만 반환합니다. 이 매개변수는 선택 사항입니다.
strict − 값 검색 시 엄격한 비교(===)를 사용할지 여부를 결정합니다. true로 설정하면 자료형까지 정확히 일치해야 하며, 기본값은 false입니다.
반환값
array_keys() 함수는 배열의 모든 키를 담은 새로운 배열을 반환합니다. value 매개변수가 지정된 경우에는 일치하는 값의 키만 반환합니다.
예제 1 – 배열의 모든 키 가져오기
아래 예제는 연관 배열의 모든 키를 출력하는 기본적인 사용 방법입니다.
<?php
$arr = array("one" => "Pen", "two" => "Pencil", "three" => "Paper", "four" => "Notepad");
print_r(array_keys($arr));
?>출력 결과
Array ( [0] => one [1] => two [2] => three [3] => four )
예제 2 – 특정 값에 해당하는 키 찾기
두 번째 예제에서는 value 매개변수를 활용하여 "Notepad"라는 값과 일치하는 요소의 키만 조회하는 방법을 살펴보겠습니다. 이처럼 특정 값이 여러 개 존재할 경우, 해당 값들을 가진 모든 키가 배열로 반환됩니다.
<?php
$arr = array("one" => "Pen", "two" => "Notepad", "three" => "Paper", "four" => "Notepad");
print_r(array_keys($arr, "Notepad"));
?>출력 결과
Array ( [0] => two [1] => four )
참고 사항
strict 매개변수를 사용하면 값 비교 시 자료형까지 검사할 수 있습니다. 예를 들어 array_keys($arr, 5, true)와 같이 호출하면 문자열 "5"가 아닌 정수 5인 경우만 일치로 판단하므로, 보다 정밀한 검색이 필요할 때 유용합니다.