>백엔드 개발 >PHP 튜토리얼 >PHP에서 다차원 배열의 값을 효과적으로 검색하려면 어떻게 해야 합니까?

PHP에서 다차원 배열의 값을 효과적으로 검색하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-21 16:52:10858검색

How Can I Effectively Search for a Value in a Multidimensional Array in PHP?

in_array()를 사용한 다차원 배열 검색

in_array() 함수는 선형 배열 내에 값이 있는지 확인하는 데 탁월합니다. 그러나 다차원 배열의 경우 그 기능이 부족합니다. 이 기사에서는 다차원 시나리오에서 in_array()의 제한 사항을 자세히 살펴보고 재귀 솔루션을 소개합니다.

다차원 배열을 사용하는 in_array()의 제한 사항

$ a = array("맥", "NT", "아이릭스", "Linux");<br>if (in_array("Irix", $a)) echo "Irix를 얻었습니다"; // 작동합니다<br>

반대로 아래와 같이 다차원 배열에 in_array()를 적용하면 부정확한 결과가 나옵니다.

$b = array(array("Mac", "NT"), array("Irix", "Linux"));<br>if (in_array("Irix", $b)) echo "Irix를 얻었습니다"; // 실패<br>

다차원 배열 검색을 위한 재귀 솔루션

다차원 배열 내에서 값을 효과적으로 검색하기 위한 재귀 접근 방식은 다음과 같습니다. 필수의. 다음 코드 조각은 이 목적을 위한 사용자 정의 함수를 정의합니다.

<br>function in_array_r($needle, $haystack, $strict = false) {</p>
<pre class="brush:php;toolbar:false">foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) &amp;&amp; in_array_r($needle, $item, $strict))) {
        return true;
    }
}

return false;

}

사용법

in_array_r() 함수는 다음과 같이 사용됩니다.

$b = array(array("Mac", "NT"), array("Irix", "Linux"));
echo in_array_r("Irix", $b) ? 'found' : 'notfound';

이 솔루션을 사용하면 다차원 배열 내의 값에 대한 효율적이고 정확한 검색 작업이 가능합니다.

위 내용은 PHP에서 다차원 배열의 값을 효과적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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