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

Linda Hamilton
풀어 주다: 2024-10-23 18:57:31
원래의
905명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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