열 값 포함을 기반으로 한 행 하위 집합
여러 열과 두 번째 평면 배열 $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!