PHP-Array: Arrays mit passenden Schlüsseln zusammenführen
In PHP gibt es Fälle, in denen wir mehrere Arrays zusammenführen müssen, um sicherzustellen, dass Elemente mit die gleiche Taste werden kombiniert. Stellen Sie sich das folgende Szenario vor:
Problem:
Wir haben zwei Arrays mit übereinstimmenden Schlüsseln und möchten sie zusammenführen, wie zum Beispiel:
<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>
Lösung:
Um diese Arrays unter Beibehaltung der Schlüssel-Wert-Beziehung zusammenzuführen, können wir verwenden array_map in Verbindung mit array_keys, um sie zu manipulieren und zu kombinieren:
<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>
Diese Lösung funktioniert, indem sie jedes Element in beiden Arrays durchläuft, den entsprechenden Schlüssel extrahiert und die Werte umbenennt, um sicherzustellen, dass sie mit array_merge_recursive zusammengeführt werden können. Das Ergebnis ist ein Array, in dem jeder Schlüssel ein zusammengeführtes Ergebnis hat, wie unten gezeigt:
<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>
Das obige ist der detaillierte Inhalt vonWie füge ich PHP-Arrays mit passenden Schlüsseln zusammen und kombiniere ihre Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!