Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich PHP-Arrays mit gemeinsam genutzten Schlüsseln mithilfe von „array_map“ zusammen?

Wie füge ich PHP-Arrays mit gemeinsam genutzten Schlüsseln mithilfe von „array_map“ zusammen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 07:21:30302Durchsuche

How to Merge PHP Arrays with Shared Keys Using  `array_map`?

PHP-Array-Zusammenführung auf demselben Schlüssel: Eine Lösung mit array_map

In PHP kann das Zusammenführen von Arrays eine Herausforderung sein, wenn die Arrays gemeinsame Schlüssel haben. Lassen Sie uns dieses Problem mit einer Lösung angehen, die die Funktion array_map nutzt.

Ziel:
Zwei Arrays, $array1 und $array2, basierend auf gemeinsamen Schlüsseln zusammenführen (z. B. „Kamera1“ , „Kamera2“) und stellen Sie sicher, dass das zusammengeführte Ergebnis die gewünschte Struktur beibehält.

Lösung:
array_map bietet eine Möglichkeit, über mehrere Arrays gleichzeitig zu iterieren und auf jedes eine Rückruffunktion anzuwenden Element. So können wir es verwenden:

<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"]
];

$results = [];

array_map(function($a, $b) use (&$results) {
    // Get the key for both arrays
    $key = current(array_keys($a));
    $a[$key] = ['ip' => $a[$key]];
    $key = current(array_keys($b));
    $b[$key] = ['name' => $b[$key]];
    
    $results += array_merge_recursive($a, $b);
}, $array1, $array2);</code>

So funktioniert es:

  • Die Callback-Funktion durchläuft jedes Element in $array1 und $array2.
  • Für jedes Element wird der Schlüssel abgerufen (z. B. „Kamera1“) und der Wert entsprechend geändert, wobei neue Schlüssel („IP“ und „Name“) hinzugefügt werden, um eine konsistente Array-Struktur sicherzustellen.
  • Die geänderten Elemente werden mit array_merge_recursive zusammengeführt und in $results gespeichert.
  • Das resultierende Array kombiniert beide Elementwerte für jeden gemeinsamen Schlüssel und behält dabei die geänderte Struktur bei.

Ausgabe:

var_dump($results);

Erzeugt die folgende Ausgabe:

<code class="php">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)</code>

Diese Lösung führt die beiden Arrays effektiv zusammen, während die gemeinsamen Schlüssel erhalten bleiben und die gewünschte Array-Struktur sichergestellt wird.

Das obige ist der detaillierte Inhalt vonWie füge ich PHP-Arrays mit gemeinsam genutzten Schlüsseln mithilfe von „array_map“ zusammen?. 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