PHP 5.5 이상에서 주어진 연관 배열 배열에 특정 키 / 값 쌍이 포함되어 있는지 어떻게 확인합니까? 예를 들면 :
$some_array = array(
array(
"value"=> 1,
"k1"=> "austin",
"k2"=> "texas",
"k3"=> "us"
),
array(
"value"=> 15,
"k1"=> "bali",
"k2"=> "ubud",
"k3"=> "indonesia"
),
array(
"value"=> 26,
"k1"=> "hyd",
"k2"=> "telangana",
"k3"=> "india"
)
));
k1 = 'bali', k2 = 'ubud'및 k3 = 'indonesia'와 관련된 값을 어떻게 반환합니까? 각 요소를 반복하여 해당 조합이 배열에 존재하는지 확인할 수 있지만이를 처리하는 더 간단한 방법이 있습니까?
키 및 값의 대상 배열이있는 경우를 사용하여 대상 배열의 모든 키 / 값 조합과 일치하는 하위 배열 만 포함하도록 기본 배열을 필터링 할 수 있습니다 array_diff_assoc
.
$target =array(
"k1"=> "bali",
"k2"=> "ubud",
"k3"=> "indonesia"
);
$matches = array_filter($some_array, function($item) use ($target) {
return !array_diff_assoc($target, $item);
});
array_filter
콜백 내에서에 존재하지 않는 array_diff_assoc
모든 키 / 값 쌍을 반환 하므로 모두 일치하면 빈 배열을 얻게됩니다. 해당 결과를 부정하면 일치하는 배열과 일치하지 않는 배열에 대해 반환 됩니다 .$target
$item
!
true
false
$matches
키 / 값 쌍 집합과 일치하는 모든 하위 배열의 배열이거나 일치하는 항목이 없으면 빈 배열이됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다