>백엔드 개발 >PHP 튜토리얼 >PHP에서 인덱스 배열 값을 기반으로 연관 배열 키를 필터링하려면 어떻게 해야 합니까?

PHP에서 인덱스 배열 값을 기반으로 연관 배열 키를 필터링하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-13 11:52:10764검색

How Can I Filter Associative Array Keys Based on Indexed Array Values in PHP?

인덱스 배열 값을 기반으로 연관 배열 키 필터링

많은 프로그래머는 특정 값을 기반으로 연관 배열에서 키를 선택적으로 필터링해야 하는 문제에 직면합니다. 인덱스 배열에 저장된 값 PHP에서 array_filter() 콜백 함수는 키 일치 기능을 제외하고 배열 값에 대한 액세스만 제공합니다.

$my_array에 키-값 쌍이 포함된 다음 시나리오를 고려해보세요.

$my_array = ["foo" => 1, "hello" => "world"];

그리고 $allowed는 허용된 키가 있는 간단한 인덱스 배열입니다.

$allowed = ["foo", "bar"];

목표는 수정하는 것입니다. $my_array는 $allowed에도 있는 키만 포함합니다. 원하는 출력은 다음과 같습니다.

$my_array = ["foo" => 1];

이를 달성하려면 array_intersect_key() 및 array_flip() 함수를 활용할 수 있습니다.

var_dump(array_intersect_key($my_array, array_flip($allowed)));

설명:

  • **array_flip($allowed)**: 반전 $allowed의 키와 값을 원래 키가 값이 되고 그 반대로 연관 배열로 변환합니다. 이를 통해 $my_array의 키를 뒤집힌 배열의 값과 비교할 수 있습니다.
  • array_intersect_key($my_array, $reversed): $my_array의 키를 뒤집힌 $allowed 배열과 교차합니다. 이는 반전된 배열에 값으로 존재하는 $my_array의 키만 유지하여 원하지 않는 키를 효과적으로 필터링합니다.

이러한 기능을 결합하면 값을 기준으로 연관 배열에서 키를 선택적으로 제거할 수 있습니다. 키를 수동으로 반복하고 비교하지 않고 인덱스 배열에 저장합니다.

위 내용은 PHP에서 인덱스 배열 값을 기반으로 연관 배열 키를 필터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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