본문 바로가기
코딩

[PHP] 배열이 값을 가지고 있는지 포함여부를 알 수 있는 함수 (in_array 사용법)

by 우월한하루 2023. 12. 27.
728x90
반응형

 

 

 

배열을 사용하다 보면, 해당 배열에 내가 원하는 값이 있는지 여부를 확인해야 할 때가 있습니다.

for문이나 foreach 등 반복문을 사용해서 배열의 값을 반복해서 돌린 뒤 일치하는 값이 있는지 찾아볼 수도 있지만,

반복문을 사용하는 방법보다 더 간단하게 한 줄로 배열의 값 포함여부를 알 수 있는 php 함수가 있습니다.

 

오늘은 이 함수 in_array()의 사용법에 대해서 포스팅해 보겠습니다.

 

 


 

 

in_array() 사용법

 

 

in_array("찾고 싶은 값", $배열);

 

in_array는 위와 같이 괄호 안에 먼저 찾고 싶은 값을 넣고, 뒤에 어떤 배열에서 찾을지 해당하는 배열을 넣어주면 됩니다.

해당 배열 안에 값이 존재한다면 "True" 값을 반환하고 존재하지 않는다면 "False"를 반환하니,

해당내용을 활용하여 사용하면 됩니다.

 

참고로 해당 함수는 대소문자를 구분하기 때문에 대소문자를 잘 구별해서 사용해야 합니다.

 

 

728x90

 

 

in_array() 예제

 

 

그럼 in_array 함수를 사용한 간단한 예제 몇 가지를 보겠습니다.

 

 

EX.1) 배열 안의 값 찾기

$pet_list = array("dog", "cat", "bird", "fish", "pig");
	
if(in_array("pig", $pet_list)) {
    echo "1번값존재";
}

echo "<br/>";

if(in_array("bear", $pet_list)) {
    echo "2번값존재";
}

 

 

$pet_list라는 배열에서 첫 번째는 pig의 값이 존재하는지를 보고,

두 번째는 bear의 값이 존재하는지를 판단해 봅니다.

 

위의 코드의 출력결과는 "1번 값존재"만 출력되게 됩니다.

$pet_list라는 배열에 bear이라는 값은 없기 때문에 if문을 통해 두 번째 문구는 출력되지 않았습니다.

 

 

 

EX.2) 배열 안의 배열 찾기

$test_list_1 = array("a","b");
$test_list_2 = array("C","d");

$pet_list = array("dog", "cat", "bird", "fish", "pig", $test_list_1, $test_list_2);

if(in_array("pig", $pet_list)) {
    echo "1번값존재";
}

echo "<br/>";

if(in_array($test_list_1, $pet_list)) {
    echo "2번값존재";
}

echo "<br/>";

if(in_array($test_list_2, $pet_list)) {
    echo "3번값존재";
}

 

 

 

반응형

 

 

 

위와 같이 배열 안에 배열을 넣었을 때도 해당 배열을 찾는 것이 가능합니다.

위 코드의 출력결과는 1,2,3 번째 if문의 내용 전부 출력이 됩니다.

 

 

 

EX.3) 2차원 배열의 값 찾기

$pet_list = array(
    "a"=>"dog", 
    "b"=>"cat",
    "c"=>"bird", 
    "d"=>"fish", 
    "e"=>"pig"
);

if(in_array("a", $pet_list)) {
    echo "1번값존재";
}

echo "<br/>";

if(in_array("cat", $pet_list)) {
    echo "2번값존재";
}
echo "<br/>";

if(in_array("ccccc", $pet_list)) {
    echo "3번값존재";
}

 

 

 

위와 같은 코드를 사용한다면 어떻게 출력이 될까요?

배열 안에 "a"도 있고, "cat"도 있고, "ccccc"만 없으니까 1번, 2번 값 존재만 출력될까요?

 

아닙니다. 정답은 "2번 값존재"만 출력되게 됩니다.

이유는 "a"는 해당 배열의 키값이기 때문에 in_array() 함수에서는 값이 존재하지 않는다고 판단합니다.

배열 안에는 cat의 값은 존재하기 때문에 두 번째 if문만 참이 되겠네요.

 

그럼 키값이 있는지 여부는 알 수 있는 방법이 없을까요?

array_key_exists() 함수를 사용하면 키값의 존재 여부도 확인할 수 있습니다.

 


 

결론

 

이 포스팅에서는 배열 안에 원하는 값을 가지고 있는지를 판단하는 방법에 대해서 알아보았습니다.

in_array() 함수를 통해 배열 안의 값을 신속하게 탐색하고, 활용할 수 있도록 해봅시다.

728x90
반응형

댓글