>  기사  >  백엔드 개발  >  연관 배열을 병합하고, 누락된 키를 처리하고, 기본값으로 채우는 방법은 무엇입니까?

연관 배열을 병합하고, 누락된 키를 처리하고, 기본값으로 채우는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-20 21:45:29608검색

How to Merge Associative Arrays, Handle Missing Keys, and Fill with Default Values?

여러 연관 배열을 병합하고 누락된 열을 기본값으로 추가

연관 배열을 다양한 키 세트와 결합하여 통합 배열을 만드는 것은 어려울 수 있습니다. 이 질문은 이를 달성하는 방법을 탐색하며 원하는 출력은 키가 병합되고 누락된 열이 기본값으로 채워지는 배열입니다.

이를 달성하려면 array_merge 함수를 함께 사용하는 것이 제안되었습니다. 신중하게 제작된 키 배열 사용:

$keys = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
    $keys[$key] = '';
}

이 루프는 입력 배열의 모든 요소를 ​​반복하여 고유한 키를 추출하고 빈 값을 할당합니다. 결과 $keys 배열에는 최종 병합 배열에 존재할 수 있는 모든 키가 포함됩니다.

다음으로 각 입력 배열이 $keys 배열과 병합됩니다.

$data = array();
foreach($d as $values) {
    $data[] = array_merge($keys, $values);
}

이 단계에서는 다음을 보장합니다. 최종 배열의 모든 행에는 가능한 모든 키가 있고 누락된 값은 빈 문자열로 채워집니다. 결과 $data 배열은 원하는 병합 및 완성 배열입니다.

또는 키 쌍 ​​배열을 생성하고 각 입력 배열과 병합할 수 있습니다.

$keys = array_keys(call_user_func_array('array_merge', $d));
$key_pair = array_combine($keys, array_fill(0, count($keys), null));
$values = array_map(function($e) use ($key_pair) {
    return array_merge($key_pair, $e);
}, $d);

이 방법은 기본적으로 가능한 모든 키를 null 값으로 매핑합니다. 그런 다음 각 입력 배열이 $key_pair 배열과 병합되어 이전 접근 방식과 동일한 결과를 얻습니다.

위 내용은 연관 배열을 병합하고, 누락된 키를 처리하고, 기본값으로 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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