>백엔드 개발 >PHP 튜토리얼 >연관 배열을 병합하고 누락된 열을 기본값으로 추가하려면 어떤 기술을 사용할 수 있습니까?

연관 배열을 병합하고 누락된 열을 기본값으로 추가하려면 어떤 기술을 사용할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-20 21:42:29661검색

What Techniques Can I Use to Merge Associative Arrays and Add Missing Columns with Default Values?

연관 배열 병합 및 기본값이 있는 누락 열 추가

모든 고유 키를 유지하고 누락된 열을 기본값으로 추가하면서 여러 연관 배열 병합 다양한 기술을 사용하여 달성할 수 있습니다. 이를 수행하는 두 가지 방법을 살펴보겠습니다.

방법 1: array_merge 및 RecursiveIterationIterator 사용

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

$d = array($a, $b, $c);
$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>

이 접근 방식은 먼저 array_merge와 함께 RecursiveIteratorIterator를 사용하여 모든 고유 키를 식별합니다. 각 연관 배열에서. 그런 다음 식별된 키를 사용하여 빈 배열($keys)을 초기화합니다. 그런 다음 $d의 각 배열을 반복하여 $keys 배열을 각 배열의 값과 병합하여 원하는 형식을 얻습니다.

방법 2: array_combine 및 array_map 사용

<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>

이 접근 방식은 array_keys를 사용하여 병합된 배열에 있는 모든 고유 키의 결합을 결정합니다. 그런 다음 array_combine을 활용하여 키가 고유 키이고 값이 null인 키-값 쌍을 생성합니다. 마지막으로 array_map을 사용하여 $d를 반복하고 키-값 쌍($key_pair)을 $d의 각 연관 배열과 병합하여 원하는 형식을 얻습니다.

위 내용은 연관 배열을 병합하고 누락된 열을 기본값으로 추가하려면 어떤 기술을 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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