연관 배열을 다양한 키 세트와 결합하여 통합 배열을 만드는 것은 어려울 수 있습니다. 이 질문은 이를 달성하는 방법을 탐색하며 원하는 출력은 키가 병합되고 누락된 열이 기본값으로 채워지는 배열입니다.
이를 달성하려면 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 배열과 병합되어 이전 접근 방식과 동일한 결과를 얻습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3