Fusionner des tableaux 2D par valeur de colonne partagée
La combinaison de deux tableaux multidimensionnels avec des valeurs partagées peut être une tâche de programmation courante. Bien que les approches itératives traditionnelles utilisant des boucles imbriquées et des vérifications conditionnelles soient fiables, elles peuvent souvent conduire à un code verbeux et potentiellement inefficace. Cet article explore des solutions élégantes utilisant les fonctions de tableau PHP natives.
Considérez les deux tableaux suivants :
$array1 = [ ['rank' => '579', 'id' => '1'], ['rank' => '251', 'id' => '2'], ]; $array2 = [ ['size' => 'S', 'status' => 'A', 'id' => '1'], ['size' => 'L', 'status' => 'A', 'id' => '2'], ];
L'objectif est de fusionner ces tableaux en fonction de leurs valeurs « id » partagées, produisant ainsi le résultat suivant :
[ ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'], ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'], ]
Solution 1 : array_merge_recursive
La fonction array_merge_recursive() de PHP permet la fusion de tableaux, en combinant de manière récursive des éléments avec des clés correspondantes.
$mergedArray = array_merge_recursive($array1, $array2);
Cette solution est simple et produit le résultat souhaité sans avoir besoin de boucles ou conditions supplémentaires.
Solution 2 : Personnalisée Fonction
Alternativement, une fonction personnalisée peut être créée pour effectuer la fusion de manière potentiellement plus efficace :
function my_array_merge(array &$array1, array &$array2) { $result = []; foreach ($array1 as $key => &$value) { $result[$key] = array_merge($value, $array2[$key]); } return $result; } $mergedArray = my_array_merge($array1, $array2);
Cette fonction parcourt le premier tableau, fusionnant chaque élément avec son élément correspondant du deuxième tableau en fonction des clés correspondantes.
Les deux solutions offrent des moyens efficaces de fusionner des tableaux 2D en fonction des valeurs de colonnes partagées. L'approche spécifique choisie peut dépendre de facteurs tels que les exigences de performances ou les préférences en matière de lisibilité du code.
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!