>  기사  >  백엔드 개발  >  두 배열의 키-값 쌍을 유지하면서 키가 일치하는 두 개의 PHP 배열을 단일 배열로 병합하려면 어떻게 해야 합니까?

두 배열의 키-값 쌍을 유지하면서 키가 일치하는 두 개의 PHP 배열을 단일 배열로 병합하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-10-29 13:33:02617검색

How can I merge two PHP arrays with matching keys into a single array, preserving the key-value pairs from both arrays?

PHP에서 키가 일치하는 배열 병합

문제 설명:

두 개의 PHP를 병합하려면 두 배열의 키-값 쌍을 유지하면서 일치하는 키가 있는 배열을 단일 배열로 만듭니다.

배열 예시:

배열 1:

<code class="php">array(
    [
        "Camera1" => "192.168.101.71"
    ],
    [
        "Camera2" => "192.168.101.72"
    ],
    [
        "Camera3" => "192.168.101.74"
    ]
)</code>

배열 2:

<code class="php">array(
    [
        "Camera1" => "VT"
    ],
    [
        "Camera2" => "UB"
    ],
    [
        "Camera3" => "FX"
    ]
)</code>

array_map을 사용한 솔루션:

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

$array2 = array(
    ["Camera1" => "VT"],
    ["Camera2" => "UB"],
    ["Camera3" => "FX"]
);

$results = array();

array_map(function($a, $b) use (&$results) {
    $key = current(array_keys($a));
    $a[$key] = array('ip' => $a[$key]);

    $key = current(array_keys($b));
    $b[$key] = array('name' => $b[$key]);
  
    $results += array_merge_recursive($a, $b);

}, $array1, $array2);

var_dump($results);</code>

출력 :

array (size=3)
  'Camera1' => 
    array (size=2)
      'ip' => string '192.168.101.71' (length=14)
      'name' => string 'VT' (length=2)
  'Camera2' => 
    array (size=2)
      'ip' => string '192.168.101.72' (length=14)
      'name' => string 'UB' (length=2)
  'Camera3' => 
    array (size=2)
      'ip' => string '192.168.101.74' (length=14)
      'name' => string 'FX' (length=2)

이 솔루션은 두 배열의 키-값 쌍을 보존하고 이를 단일 배열로 병합합니다. 'array_merge_recursive' 함수는 배열을 재귀적으로 병합하여 중첩된 배열을 허용하는 데 사용됩니다.

위 내용은 두 배열의 키-값 쌍을 유지하면서 키가 일치하는 두 개의 PHP 배열을 단일 배열로 병합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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