in_array()
함수
in_array()
함수는
배열에서 특정 값이 있는지 확인합니다.
확인하려는 값이 배열의 요소로 존재하면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
in_array()
함수는 입력으로 받은 값이 특정 배열에 포함되는지 확인하여 유효성을 검사하는 데 유용하게 사용됩니다.
$fruits = ['사과', '오렌지', '바나나', '포도'];
if (in_array('바나나', $fruits)) {
echo '배열 안에서 바나나를 찾았습니다!';
} else {
echo '배열 안에서 바나나를 찾지 못했습니다.';
}
// 출력: '배열 안에서 바나나를 찾았습니다!'
위의 예시에서 in_array()
함수는 $fruits
배열에서 "바나나"를 찾아 true
를 반환합니다. 따라서 "배열 안에서 바나나를 찾았습니다!"라는 메시지가 출력됩니다.
배열에서 특정 키(혹은 인덱스)가 있는지 확인하려면 array_key_exists()
함수를 대신 사용해야 합니다.
in_array()
함수의 형식은 다음과 같습니다.
구문
in_array(mixed $needle, array $haystack[, bool $strict = false]): bool
매개변수
$needle |
필수. 배열에서 찾고자(확인하려고) 하는 값을 나타냅니다. |
---|---|
$haystack |
필수. 검색을 수행할 배열을 나타냅니다. |
$strict |
옵션. true 로 설정하면 검색 시 엄격한 타입 비교가 수행됩니다. 즉, $needle 값의 타입은 배열 내의 값의 타입과 정확히 일치해야 합니다. false 로 설정하면 (기본값), 값만을 비교합니다.
만약에 $strict 변수를
|
반환 값
확인하려는 값이 배열 안에 존재하면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
유용한 사례
in_array()
함수는 PHP에서 매우 유용하고 다양한 상황에서 활용할 수 있습니다. 몇 가지 좋은 예시를 소개하겠습니다.
반복문을 활용해서 배열의 여러 개의 값을 확인하기
in_array()
함수는 배열에서 단일 값을 찾는 데에 사용되기 때문에,
여러 개의 값을 동시에 찾기 위해서는 foreach()
반복문과 in_array()
함수를 함께 사용하면 유용합니다.
$fruits = ['사과', '오렌지', '바나나', '포도'];
$search_values = ['바나나', '포도', '수박']; // 찾을 여러 개의 값을 배열로 저장
foreach ($search_values as $value) {
if (in_array($value, $fruits)) {
echo "배열에서 '{$value}' 값을 찾았습니다!" . '<br>';
} else {
echo "배열에서 '{$value}' 값을 찾지 못했습니다." . '<br>';
}
}
코드 부연설명
foreach()
반복문은 배열이나 객체를 순회해서 반복으로 처리할 때 사용하는 대표적인 구문입니다.
배열에서 '포도' 값을 찾았습니다!
배열에서 '수박' 값을 찾지 못했습니다.
위의 출력에서 보듯이, "바나나"와 "포도" 값은 $fruits
배열에서 찾았지만 "수박" 값은 찾지 못했습니다.
값의 존재 확인
배열 안에 특정 값을 찾아야 하는 경우 in_array()
함수를 사용하여 값의 존재 여부를 확인할 수 있습니다.
아래의 예제는 웹사이트에서 사용자가 선택한 언어가 지원되는지 확인하여 언어 설정을 적용하는 예제입니다.
$supported_languages = ['en', 'es', 'fr', 'de'];
$user_language = 'fr';
if (in_array($user_language, $supported_languages)) {
echo "선택한 언어 '{$user_language}'를 지원합니다!";
} else {
echo "선택한 언어 '{$user_language}'는 지원되지 않습니다. 기본 언어를 사용합니다.";
}
// 출력: "선택한 언어 'fr'를 지원합니다!"
값의 중복 제거
배열에서 중복된 값을 제거하려면 in_array()
함수와 foreach()
반복문 사용하여 중복 값을 찾고 제거할 수 있습니다.
예를 들어, 사용자가 중복을 허용하지 않는 리스트를 만들 때나, 데이터베이스 결과에서 중복을 제거하여 정제할 때 자주 사용됩니다.
$numbers = [1, 2, 2, 3, 4, 4, 5];
$unique_numbers = [];
foreach ($numbers as $number) {
if (!in_array($number, $unique_numbers)) {
$unique_numbers[] = $number;
}
}
print_r($unique_numbers); // 출력: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
위의 예제에서 $numbers
배열에 중복된 값을 제거하여 $unique_numbers
배열에 고유한 값만 남겼습니다. foreach()
반복문과 in_array()
함수를 사용하여 중복 값을 찾고, 고유한 값만 $unique_numbers
배열에 추가합니다.
이제 $unique_numbers
배열은 중복 값이 없는 고유한 값을 가지고 있습니다. 이러한 기능은 일상적인 프로그래밍에서 자주 사용되며, 데이터 정제와 중복 처리에 유용합니다.
허용 가능한 값 확인
in_array()
함수는 입력으로 받은 값이 특정 배열에 포함되는지 확인하여 유효성을 검사하는 데 사용할 수 있습니다.
$valid_colors = ['red', 'green', 'blue', 'yellow'];
$user_color = 'orange';
if (in_array($user_color, $valid_colors)) {
echo '사용 가능한 색상입니다!';
} else {
echo '사용할 수 없는 색상입니다.';
}
// 출력: '사용할 수 없는 색상입니다.'
값에 대한 처리
in_array()
함수는 배열에 특정 값이 있는지 여부에 따라 다른 작업을 수행해야 하는 경우에도 유용합니다.
$fruits = ['사과', '오렌지', '바나나', '포도'];
if (in_array('오렌지', $fruits)) {
echo '오렌지를 찾았습니다! 오렌지 주스를 만들어보세요!';
} else {
echo '오렌지를 찾지 못했습니다. 오렌지를 사러 가보세요.';
}
// 출력: '오렌지를 찾았습니다! 오렌지 주스를 만들어보세요!'
in_array()
함수는 이러한 상황에서 유용하게 사용되며, 특히 배열에 특정 값을 찾아야 하는 상황에서 빠르고 간편한 해결 방법을 제공합니다.
같이 보기
- PHP 배열 키가 있는지 확인하는 array_key_exists() 함수
- PHP isset() 함수와 empty() 함수 – 개념 정리 및 사용법과 차이점
- PHP array_search() 함수 – 개념 정리 및 사용 예제
- PHP array_filter() 함수 – 개념 정리 및 사용 예제
- PHP array_keys() 함수 – 배열 키 목록 가져오기
- PHP array_values() 함수 – 배열 값 목록 가져오기
- PHP array_map() 함수 – 개념 정리 및 사용 예제
- PHP array_diff() 함수 - 다른 배열에 없는 값 찾기
- PHP array_diff_assoc() 함수 - 키를 기준으로 다른 배열에 없는 값 찾기
- PHP array_intersect() 함수 - 다른 배열과의 공통 값 찾기
- PHP array_intersect_assoc() 함수 - 키와 값을 기준으로 다른 배열과의 공통 요소 찾기