Fusion de tableaux PHP sur la même clé : une solution utilisant array_map
En PHP, la fusion de tableaux peut être difficile lorsque les tableaux partagent des clés communes. Résolvons ce problème avec une solution qui exploite la fonction array_map.
Objectif :
Fusionner deux tableaux, $array1 et $array2, en fonction de clés partagées (par exemple, "Camera1" , "Camera2"), et assurez-vous que le résultat fusionné conserve la structure souhaitée.
Solution :
array_map offre un moyen de parcourir plusieurs tableaux simultanément, en appliquant une fonction de rappel à chacun élément. Voici comment nous pouvons l'utiliser :
<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>
Comment ça marche :
Sortie :
var_dump($results);
Produira le résultat suivant :
<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>
Cette solution fusionne efficacement les deux tableaux tout en préservant les clés partagées et en garantissant la structure de tableau souhaitée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!