2015. 1. 28. 11:18

프로그램을 작성하다 보면 특정 배열에서 어떤 값이 있는지 확인을 해야 할 필요가 있을때가 있습니다.

그리고 해당 값이 들어 있는 인덱스를 가져와야 할때도 있을 수 있구요

그럴때 사용되는 함수가 in_array()함수 와 array_search() 함수입니다.

 

차이는 in_array()함수는 단지 해당값이 배열에 포함되어 있는지 여부는 true/false로만 반환하는 반면

array_search()함수는 해당값이 있을때 인덱스나 키값을 반환합니다.

또한 array_search()함수는 해당값이 없을때는 NULL을 반환합니다.

 

따라서 단지 배열에 해당값이 있는가 하는 확인만 필요할때는 in_array()함수를...

해당값이 있는지 여부와 인덱스 또는 키값이 필요할때는 array_search()함수를 사용하시면 됩니다.

 

먼저 in_array() 함수의 예제는 다음과 같습니다.

(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)

 

$array = array("asp", "jsp", "php", "java");
if(in_array("php", $array)){
 echo"exist";
}else{
 echo"none";
}

 

위의 코드에서 결과는 당연히 true이겠죠?

 

 

다음은 array_search()함수의 예제입니다.

(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)

 

$array = array("asp", "jsp", "php", "java");
$strIndex = array_search("php", $array);
if($strIndex == ""){
 echo"none";
}else{
 echo"find - " . $strIndex;
}

 

위 코드의 결과는 "find - 2" 가 됩니다.

 

물론 경우에 따라서 조사 대상이 되는 배열이 2차 이상의 배열 일때도 있을 수 있겠으며

다양한 상황이 될 수 있을것입니다.

 

이럴때는 위 두 함수의 첫번째 인수를 배열로 넣을 수 도 있으며

is_array()

is_object()

와 같은 함수를 위 두 함수의 조합과 함께 활용하는 방법도 있을 것입니다.

 

Posted by 작은0악마