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

Mary-Kate Olsen
Freigeben: 2024-11-01 07:21:30
Original
300 Leute haben es durchsucht

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>
Nach dem Login kopieren

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);
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!