>백엔드 개발 >PHP 문제 >PHP의 2차원 배열에 특정 값이 존재하는지 확인하는 방법

PHP의 2차원 배열에 특정 값이 존재하는지 확인하는 방법

PHPz
PHPz원래의
2023-04-20 13:55:001361검색

특정 값이 존재하는지 알아내는 PHP 2차원 배열

PHP에서 배열은 흔히 사용되는 데이터 유형 중 하나이며, 2차원 배열은 가장 일반적으로 사용되는 배열 형태 중 하나입니다. 실제 개발에서는 2차원 배열에 특정 값이 존재하는지 확인해야 하는 경우가 많습니다. 이 기사에서는 몇 가지 구현 방법을 소개합니다.

  1. foreach 루프 사용

먼저 foreach 루프를 사용하여 2차원 배열 전체를 순회하면서 대상 값이 하나씩 존재하는지 확인할 수 있습니다. 코드는 다음과 같습니다.

function search_array($array, $search_value)
{
    foreach($array as $value)
    {
        if(in_array($search_value, $value))
        {
            return true;
        }
    }
    return false;
}

위 코드에서는 두 개의 매개변수를 받는 search_array라는 함수를 정의합니다. $array는 검색할 2차원 배열을 나타내고 $search_value는 검색할 값을 나타냅니다.

함수 본문에서는 먼저 foreach 루프를 사용하여 2차원 배열을 순회하면서 매번 하나의 배열 요소 $value를 꺼낸 다음 in_array 함수를 사용하여 $search_value가 $value에 존재하는지 확인합니다. , 함수는 검색이 발견되었음을 나타내는 true를 반환하고, 그렇지 않으면 배열을 탐색할 때까지 계속 반복합니다.

참고: in_array() 함수는 배열에서 주어진 값을 검색하는 데 사용됩니다. 발견되면 true를 반환하고 그렇지 않으면 false를 반환합니다.

  1. array_walk 함수 사용

foreach 루프를 사용하는 것 외에도 array_walk 함수를 사용하여 각 배열 요소를 처리하고 대상 값이 존재하는지 확인할 수도 있습니다. 코드는 다음과 같습니다.

function search_array($array, $search_value)
{
    $found = false;
    array_walk($array, function($value) use (&$found, $search_value){
        if(in_array($search_value, $value))
        {
            $found = true;
        }
    });
    return $found;
}

위 코드에서는 먼저 두 개의 매개변수를 받는 search_array라는 함수를 정의합니다. $array는 검색할 2차원 배열을 나타내고 $search_value는 검색할 값을 나타냅니다. 또한 목표 값이 발견되었는지 여부를 나타내는 변수 $found를 정의하고 false로 초기화됩니다.

그런 다음 array_walk 함수를 호출하여 $array 배열을 순회했습니다. 여기서는 익명 함수를 콜백 함수로 사용했습니다. 이 함수는 $value 매개변수를 받아 배열 요소를 나타내고 use 문을 사용하여 $found 및 $search_value in. 함수 본문에서 in_array 함수는 $value에 $search_value가 있는지 확인하고, 있으면 $found를 true로 설정하여 대상 값을 찾았음을 나타냅니다. 마지막으로 함수는 $found 값을 반환하여 대상 값을 찾았는지 여부를 나타냅니다.

참고: array_walk() 함수는 배열의 각 요소에 사용자 정의 함수를 적용합니다. 성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.

  1. array_reduce 함수를 사용하세요

마지막으로 array_reduce 함수를 사용하여 2차원 배열 전체를 순회하면서 각 배열 요소에 목표 값이 포함되어 있는지 하나씩 확인할 수도 있습니다. 코드는 다음과 같습니다.

function search_array($array, $search_value)
{
    $found = array_reduce($array, function($carry, $value) use ($search_value){
        return $carry || in_array($search_value, $value);
    }, false);
    return $found;
}

위 코드에서는 먼저 두 개의 매개변수를 받는 search_array라는 함수를 정의합니다. $array는 검색할 2차원 배열을 나타내고 $search_value는 검색할 값을 나타냅니다.

그런 다음 익명 함수를 콜백 함수로 사용하여 array_reduce 함수를 사용하여 전체 2차원 배열을 순회합니다. 여기서 $carry는 이전 반복의 반환 값을 나타내고 $value는 현재 반복되는 배열 요소를 나타냅니다. in_array 함수는 $search_value가 $value에 존재하는지 확인하는 데 사용됩니다. 존재하는 경우 $carry || 목표값을 찾지 못했다는 뜻입니다. 마지막으로 함수는 $found 값을 반환하여 대상 값을 찾았는지 여부를 나타냅니다.

참고: array_reduce() 함수는 콜백 함수를 사용하여 반복적으로 배열을 단일 값으로 줄입니다.

요약

이 기사에서는 특정 값을 찾기 위해 PHP 2차원 배열을 구현하는 세 가지 방법을 소개합니다. foreach 루프, array_walk 함수 및 array_reduce 함수를 사용하여 각각 2차원 배열을 순회하고 대상 값이 포함되어 있는지 확인합니다. . 실제 개발에서는 코드 효율성과 실행 속도를 향상시키기 위해 실제 상황에 따라 적절한 구현 방법을 선택해야 합니다.

위 내용은 PHP의 2차원 배열에 특정 값이 존재하는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.