PHP에서 연관 배열을 효과적으로 병합하고 누락된 열을 처리하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-20 21:42:02
원래의
580명이 탐색했습니다.

How to Effectively Merge Associative Arrays and Handle Missing Columns in PHP?

연관 배열 병합 및 기본값으로 누락된 열 완성

다음 코드를 고려하세요.

<code class="php">$a = ['a' => 'some value', 'b' => 'some value', 'c' => 'some value'];
$b = ['a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value'];
$c = ['b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value'];

$d = [$a, $b, $c];</code>
로그인 후 복사

var_export($d)를 사용하면 다음과 같은 출력을 얻을 수 있습니다.

<code class="php">array (
  0 =>
  array (
    'a' => 'some value',
    'b' => 'some value',
    'c' => 'some value',
  ),
  1 =>
  array (
    'a' => 'another value',
    'd' => 'another value',
    'e' => 'another value',
    'f' => 'another value',
  ),
  2 =>
  array (
    'b' => 'some more value',
    'x' => 'some more value',
    'y' => 'some more value',
    'z' => 'some more value',
  ),
)</code>
로그인 후 복사

기본값으로 배열 키 병합

배열 키를 결합하고 누락된 열을 채우려면 기본값을 사용하면 array_merge:

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

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

echo '<pre class="brush:php;toolbar:false">';
print_r($data);</code>
로그인 후 복사

결과:

<code class="php">Array
(
    [0] => Array
        (
            [a] => some value
            [b] => some value
            [c] => some value
            [d] =>
            [e] =>
            [f] =>
            [x] =>
            [y] =>
            [z] =>
        )

    [1] => Array
        (
            [a] => another value
            [b] =>
            [c] =>
            [d] => another value
            [e] => another value
            [f] => another value
            [x] =>
            [y] =>
            [z] =>
        )

    [2] => Array
        (
            [a] =>
            [b] => some more value
            [c] =>
            [d] =>
            [e] =>
            [f] =>
            [x] => some more value
            [y] => some more value
            [z] => some more value
        )
)</code>
로그인 후 복사

다른 접근 방식

을 사용할 수 있습니다. 또는 키 쌍 ​​값을 생성한 후 병합할 수도 있습니다.

<code class="php">$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);</code>
로그인 후 복사

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

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿