PHP의 배열에 문자가 있는지 확인하는 방법

PHPz
풀어 주다: 2023-04-23 11:19:36
원래의
432명이 탐색했습니다.

PHP 개발에서 배열은 매우 일반적인 데이터 유형입니다. 배열에는 여러 변수를 저장할 수 있으며 이러한 변수는 첨자를 통해 액세스하고 수정할 수 있습니다. 그러나 실제 개발에서는 배열에 문자가 존재하는지 확인하는 등의 문제가 발생할 수 있습니다. 이번 글에서는 배열에 문자가 있는지 확인하는 방법에 대해 설명하겠습니다.

먼저 간단한 예를 살펴보겠습니다. 도시 이름이 포함된 배열이 있다고 가정해 보겠습니다.

$cities = array("北京", "上海", "广州", "深圳");
로그인 후 복사

이제 이 배열에 이름이 있는지 확인하고 싶습니다. "Shenzhen"이라는 도시가 이 배열에 포함되어 있는지 확인한다고 가정해 보겠습니다. 이 목적을 달성하기 위해 PHP의 in_array() 함수를 사용할 수 있습니다. 이 함수의 구문은 다음과 같습니다:

in_array( $needle, $haystack [, $strict ] )
로그인 후 복사

매개변수:

  • $needle: 필수. 찾을 값을 지정합니다.
  • $haystack: 필수입니다. 값을 찾을 배열을 지정합니다.
  • $엄격: 선택 사항. 이 매개변수가 true로 설정되면 함수는 일치 항목을 찾을 때 데이터 유형도 확인합니다(즉, 검색되는 값과 배열의 값이 정확히 동일해야 함).

이 함수는 배열에서 주어진 값을 검색하여 값이 발견되면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 그런 다음 이 함수를 다음과 같이 호출할 수 있습니다.

if (in_array("深圳", $cities)) {
    echo "深圳是一个城市"; // 输出:深圳是一个城市
} else {
    echo "深圳不是一个城市";
}
로그인 후 복사

이 예에서는 먼저 in_array() 함수를 사용하여 "Shenzhen"이 $cities 배열에 있는지 확인합니다. 배열에서 "Shenzhen"이 발견되면 "Shenzhen is a city"가 출력되고, 그렇지 않으면 "Shenzhen is not a city"가 출력됩니다.

그러나 in_array() 함수를 사용하여 배열에 문자가 있는지 확인하려고 하면 잘못된 결과를 얻을 가능성이 높습니다. 예:

$letters = array("a", "b", "c", "d");
if (in_array("ab", $letters)) {
    echo "找到了"; 
} else {
    echo "没找到"; // 输出:没找到
}
로그인 후 복사

위의 예에서는 문자열 "ab"가 $letters 배열에 있는지 확인하려고 합니다. 하지만 in_array() 함수는 하나의 항목만 검사하므로 "ab"는 항목이 아니므로 false를 반환합니다.

이 문제를 해결하기 위해 다른 함수를 사용하여 배열에 문자가 있는지 확인할 수 있습니다. 다음은 몇 가지 방법입니다.

  1. strpos() 함수 사용

strpos() 함수를 사용하여 배열에 문자가 있는지 확인할 수 있습니다. 이 함수는 문자열 내에서 다른 문자열을 찾아 첫 번째로 일치하는 문자열이 있으면 해당 위치를 반환합니다. 찾을 수 없으면 false를 반환합니다. 이 함수를 사용하여 배열에서 문자를 찾을 수 있습니다. 예는 다음과 같습니다.

$letters = array("a", "b", "c", "d");
if (strpos(implode($letters), "ab") !== false) {
    echo "找到了"; // 输出:找到了
} else {
    echo "没找到";
}
로그인 후 복사

이 예에서는 먼저 implode() 함수를 사용하여 $letters 배열의 모든 항목을 문자열로 결합한 다음 strpos() 함수를 사용하여 "ab"가 포함되어 있는지 확인합니다. 이 문자열 . 발견되면 "Found"를 출력하고, 그렇지 않으면 "Not Found"를 출력합니다.

  1. preg_grep() 함수 사용

preg_grep() 함수를 사용하여 배열에 문자가 있는지 확인할 수도 있습니다. 이 함수는 정규식 패턴을 받아들이고 배열에서 일치하는 모든 항목을 일치시킵니다. 그런 다음 모든 일치 항목이 포함된 배열을 반환합니다. 일치하는 항목이 없으면 false를 반환합니다. 예는 다음과 같습니다.

$letters = array("a", "b", "c", "d");
if (preg_grep("/ab/", $letters)) {
    echo "找到了"; // 输出:找到了
} else {
    echo "没找到";
}
로그인 후 복사

이 예에서는 preg_grep() 함수를 사용하여 문자열 "ab"가 배열에 존재하는지 확인합니다. 일치하는 항목이 포함된 새 배열을 반환합니다. 새 배열이 비어 있지 않으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 따라서 "ab"가 발견되면 "Found"를 출력하고, 그렇지 않으면 "Not Found"를 출력합니다.

  1. array_filter() 함수 사용

마지막으로 array_filter() 함수를 사용하여 배열에 문자가 있는지 확인할 수 있습니다. 이 함수는 콜백 함수를 받아들이고 배열에서 일치하지 않는 모든 항목을 필터링합니다. 그런 다음 모든 일치 항목을 포함하는 배열을 반환합니다. 일치하는 항목이 없으면 빈 배열이 반환됩니다. 예는 다음과 같습니다.

$letters = array("a", "b", "c", "d");
if (array_filter($letters, function($value) {
    return strpos($value, "a") !== false;
})) {
    echo "找到了"; // 输出:找到了
} else {
    echo "没找到";
}
로그인 후 복사

이 예에서는 array_filter() 함수와 콜백 함수를 사용하여 문자열 "a"가 배열에 존재하는지 확인합니다. 콜백 함수는 값을 받아들이고 값이 검색 기준과 일치하는지 여부를 나타내는 true 또는 false를 반환합니다. array_filter() 함수는 모든 일치 항목을 포함하는 배열을 반환합니다. 따라서 "a"가 발견되면 "Found"를 출력하고, 그렇지 않으면 "Not Found"를 출력합니다.

이 글에서는 배열에 문자가 있는지 확인하는 몇 가지 방법을 소개했습니다. 실제 개발에서는 데이터를 처리하는 방법에 따라 다른 방법을 사용해야 할 수도 있습니다. 유사한 문제가 발생하는 경우 이 문서에 제공된 방법을 참조하여 적합한 솔루션을 찾으십시오.

위 내용은 PHP의 배열에 문자가 있는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿