>백엔드 개발 >PHP 튜토리얼 >인덱스 배열의 키를 기반으로 PHP에서 연관 배열을 필터링하는 방법은 무엇입니까?

인덱스 배열의 키를 기반으로 PHP에서 연관 배열을 필터링하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-13 08:39:10388검색

How to Filter an Associative Array in PHP Based on Keys from an Indexed Array?

인덱스 배열의 키를 기반으로 연관 배열 필터링

PHP에서 array_filter()는 인덱스 배열 기반의 연관 배열을 필터링하는 편리한 방법을 제공합니다. 그들의 가치에. 그러나 이 함수는 값만 고려하므로 프로그래머는 허용된 값 집합을 기반으로 키를 필터링하는 방법을 모색하게 됩니다. 이 질문은 이 문제를 해결합니다.

연관 배열($my_array)과 허용된 키의 인덱스 배열($allowed)이 주어지면 작업은 $allowed에 없는 $my_array의 모든 키를 제거하는 것입니다. 원하는 출력은 $allowed에서 키가 발견된 키-값 쌍만 포함하는 $my_array입니다.

해결책:

대답은 두 가지 배열 조작을 활용하는 것을 제안합니다. 함수:

  • array_intersect_key(): 이 함수는 키를 사용하여 두 배열 간의 비교를 수행합니다. 두 배열 모두에 존재하는 키만 포함하는 새 배열을 반환합니다.
  • array_flip(): 이 함수는 연관 배열의 키와 값을 뒤집어 키를 값과 그 반대도 마찬가지입니다.

이 두 기능을 결합하면 연관 배열을 다음과 같이 필터링할 수 있습니다. 다음은 다음과 같습니다.

$filtered_array = array_intersect_key($my_array, array_flip($allowed));

여기서 array_flip($allowed)는 $allowed의 값이 키가 되고, 키가 값이 되는 새 배열을 만듭니다. 그런 다음 array_intersect_key($my_array, ...)는 $my_array를 뒤집힌 배열과 비교하여 허용된 키만 키와 관련 값으로 포함된 배열을 반환합니다.

예:

제공된 예 사용:

$my_array = array("foo" => 1, "hello" => "world");
$allowed = array("foo", "bar");

결과 $filtered_array는 다음과 같습니다.

array("foo" => 1);

위 내용은 인덱스 배열의 키를 기반으로 PHP에서 연관 배열을 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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