Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich zwei PHP-Arrays mit passenden Schlüsseln in einem einzigen Array zusammenführen und dabei die Schlüssel-Wert-Paare beider Arrays beibehalten?

Wie kann ich zwei PHP-Arrays mit passenden Schlüsseln in einem einzigen Array zusammenführen und dabei die Schlüssel-Wert-Paare beider Arrays beibehalten?

DDD
DDDOriginal
2024-10-29 13:33:02627Durchsuche

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

Arrays mit passenden Schlüsseln in PHP zusammenführen

Problemstellung:

Zwei PHP zusammenführen Arrays mit übereinstimmenden Schlüsseln in einem einzigen Array, wobei die Schlüssel-Wert-Paare aus beiden Arrays erhalten bleiben.

Beispiel-Arrays:

Array 1:

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

Array 2:

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

Lösung mit 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>

Ausgabe :

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)

Diese Lösung behält die Schlüssel-Wert-Paare aus beiden Arrays bei und führt sie in einem einzigen Array zusammen. Die Funktion „array_merge_recursive“ wird verwendet, um die Arrays rekursiv zusammenzuführen und so verschachtelte Arrays zu ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann ich zwei PHP-Arrays mit passenden Schlüsseln in einem einzigen Array zusammenführen und dabei die Schlüssel-Wert-Paare beider Arrays beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP 8.2 veröffentlichtNächster Artikel:PHP 8.2 veröffentlicht