>  기사  >  백엔드 개발  >  PHP 배열을 일치하는 키와 병합하고 해당 값을 결합하는 방법은 무엇입니까?

PHP 배열을 일치하는 키와 병합하고 해당 값을 결합하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-01 08:28:30285검색

How to merge PHP arrays with matching keys and combine their values?

PHP 배열: 일치하는 키로 배열 병합

PHP에서는 여러 배열을 병합해야 하는 경우가 있습니다. 같은 키가 결합되어 있습니다. 다음 시나리오를 고려하십시오.

문제:

키가 일치하는 두 개의 어레이가 있고 이를 병합하려고 합니다.

<code class="php">$array1 = [
    ['Camera1' => '192.168.101.71'],
    ['Camera2' => '192.168.101.72'],
    ['Camera3' => '192.168.101.74']
];

$array2 = [
    ['Camera1' => 'VT'],
    ['Camera2' => 'UB'],
    ['Camera3' => 'FX']
];</code>

해결책:

키-값 관계를 유지하면서 이러한 배열을 병합하려면 array_keys와 함께 array_map을 사용하여 조작하고 결합할 수 있습니다.

<code class="php">$results = array();

array_map(function($a, $b) use (&$results) {

    $key1 = current(array_keys($a));
    $a[$key1] = ['ip' => $a[$key1]];

    $key2 = current(array_keys($b));
    $b[$key2] = ['name' => $b[$key2]];

    $results = array_merge_recursive($a, $b);

}, $array1, $array2);</code>

이것은 솔루션은 두 배열의 각 요소를 반복하고, 해당 키를 추출하고, array_merge_recursive를 사용하여 값이 병합될 수 있도록 값의 이름을 바꾸는 방식으로 작동합니다. 결과는 아래와 같이 각 키에 병합된 결과가 있는 배열입니다.

<code class="php">array (
  'Camera1' => array (
    'ip' => '192.168.101.71',
    'name' => 'VT'
  ),
  'Camera2' => array (
    'ip' => '192.168.101.72',
    'name' => 'UB'
  ),
  'Camera3' => array (
    'ip' => '192.168.101.74',
    'name' => 'FX'
  )
)</code>

위 내용은 PHP 배열을 일치하는 키와 병합하고 해당 값을 결합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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