[PHP] 배열에 특정 값이 있는지 확인하는 방법, in_array

folder 프로그래밍 calendar_month web_traffic 0

문제

워드프레스에서 어떤 페이지의 자식 페이지 목록을 배열 형태로 가져오고, 특정 페이지 ID가 해당 배열에 포함되어 있는지 확인 해야 하는 상황이 발생했습니다.

이런 경우 간단하게 in_array 함수를 이용하면 간단하게 확인이 가능합니다.

해결

일단 자식 페이지의 ID 가 담긴 배열 변수를 $children 이라고 하고, 확인하고자 하는 ID 를 $postid 라고 했을 때 아래와 같이 간단하게 확인 할 수 있습니다.

if ( in_array( $postid, $children ) ) {
    // 배열에 ID 가 포함 되어 있을 경우 실행할 작업 
}

간단하게 in_array 함수의 사용 방법을 정리하면, 첫 번째 인자는 비교할 값, 두 번째 인자는 비교 대상이 되는 배열을 넣으면 됩니다.

in_array 함수 반환 값은 boolean(true 또는 false) 이기 때문에 위와 같은 예제에서는 $postid$children 배열에 포함되어 있다면 true 를 반환하고 설정된 작업을 실행하게 됩니다.

만약 배열에서 값의 존재 유무를 판단할 때 값의 형(Type)까지 비교해서 확인하고 싶다면,

if ( in_array( $postid, $children, true ) ) {
    // 배열에 ID 가 포함 되어 있을 경우 실행할 작업 
}

위 코드와 같이 in_array 세 번째 인자에 true 를 넣어 형까지 엄격하게 비교 할 수 있습니다. 세 번째 인자의 기본 값은 false 이기 때문에 생략할 경우 은 비교하지 않습니다.

참고자료

댓글 남기기