PHP의 array_search() 함수는 배열 안에서 지정한 값을 검색하고, 해당 값이 위치한 키(key)를 반환하는 함수입니다. 값을 찾으면 그 키를 반환하며, 찾지 못하면 FALSE를 반환합니다. 만약 같은 값이 배열에 여러 번 존재한다면, 가장 먼저 일치하는 첫 번째 키가 반환됩니다.
문법(Syntax)
array_search(val, arr, strict)
매개변수(Parameters)
val − 배열에서 검색할 값입니다.
arr − 검색 대상이 되는 배열입니다.
strict −
TRUE또는FALSE값을 가집니다.TRUE로 설정하면 값뿐만 아니라 자료형까지 완전히 일치하는(===) 요소만 검색합니다.
반환값(Return)
값을 찾으면 해당 값의 키를 반환하고, 찾지 못하면 FALSE를 반환합니다. 동일한 값이 배열에 여러 개 있을 경우에는 첫 번째로 일치하는 키가 반환됩니다.
예제 1
연관 배열에서 특정 값을 검색하는 예제입니다.
<?php
$arr = array("p"=>20,"q"=>20,"r"=>30,"s"=>40);
echo array_search(20,$arr,true);
?>출력 결과
p
값 20은 키 "p"와 "q"에 모두 존재하지만, strict 모드에서 가장 먼저 발견된 키인 p가 반환됩니다.
예제 2
일반 인덱스 배열에서 숫자 값을 검색하는 예제입니다.
<?php $arr = array(30, 2, 5, 7, 90, 35, 78); echo array_search(35,$arr,true); ?>
출력 결과
5
값 35는 인덱스 5번 위치에 있으므로 5가 반환됩니다.
예제 3
문자열 값을 가진 배열에서 검색하는 예제입니다.
<?php
$arr = array("MAC", "WINDOWS","LINUX", "SOLARIS");
$search = "WINDOWS";
echo array_search($search,$arr,true);
?>출력 결과
1
"WINDOWS"는 인덱스 1번 위치에 있으므로 1이 반환됩니다.
정리
array_search()는 배열에서 특정 값을 찾아 그 키를 알고 싶을 때 유용한 함수입니다. 특히 strict 매개변수를 TRUE로 설정하면 자료형까지 비교하므로, 0과 "0"처럼 형 변환 시 혼동될 수 있는 값을 다룰 때 더욱 안전하게 사용할 수 있습니다.