>백엔드 개발 >PHP 튜토리얼 >특정 값과 일치하는 열 값을 기준으로 배열 행을 필터링하는 방법은 무엇입니까?

특정 값과 일치하는 열 값을 기준으로 배열 행을 필터링하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-23 18:57:31908검색

How to Filter Array Rows Based on Column Value Matching Specific Values?

열 값 포함을 기반으로 한 행 하위 집합

여러 열과 두 번째 평면 배열 $arr2가 있는 배열 $arr1을 생각해 보세요. 특정 ID 값을 포함합니다. 목표는 $arr1을 필터링하여 열 값이 $arr2의 값과 일치하는 행만 유지하는 것입니다.

필터 함수 또는 array_search를 사용한 이전 시도는 실패했습니다. 실용적인 해결책은 기본 PHP 함수인 array_uintersect()를 사용하는 것입니다.

이 함수는 두 입력 배열 내에서 id 열을 평가하는(또는 존재하지 않는 경우 매개변수 값으로 대체) 익명 콜백 함수를 활용합니다. 비교는 값이 같은지 확인합니다.

콜백 내에서 연산자 => 입력 배열 변수 $a 및 $b를 캡처하는 데 사용되며 삼항 연산자 ?: null이 아닌 반환 값을 할당합니다.

내부적으로 array_uintersect는 평가 프로세스 중에 정렬을 수행하여 성능을 최적화하고 실행합니다. 반복적인 in_array() 호출보다 훨씬 빠릅니다.

아래 코드는 솔루션을 보여줍니다.

<code class="php">var_export(
    array_uintersect(
        $arr1,
        $arr2,
        fn($a, $b) =>
            ($a['id'] ?? $a)
            <=
            ($b['id'] ?? $b)
    )
);</code>

위 내용은 특정 값과 일치하는 열 값을 기준으로 배열 행을 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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