Maison >développement back-end >tutoriel php >Comment puis-je fusionner deux tableaux 2D en PHP en fonction d'une valeur de colonne partagée ?
Dans le domaine de la manipulation de données, la fusion de tableaux apparaît souvent comme une tâche courante. Cet article explore un scénario spécifique : combiner deux tableaux 2D basés sur une valeur de colonne partagée.
Imaginez deux tableaux, chacun contenant des objets avec des identifiants communs. Ces tableaux pourraient ressembler à ceci :
$array1 = [ ['rank' => '579', 'id' => '1'], ['rank' => '251', 'id' => '2'], ]; $array2 = [ ['size' => 'S', 'status' => 'A', 'id' => '1'], ['size' => 'L', 'status' => 'A', 'id' => '2'], ];
Notre objectif est de fusionner ces tableaux en un seul tableau, en combinant les éléments qui partagent la même valeur « id ».
PHP propose plusieurs fonctions qui facilitent la fusion de tableaux. Explorons-les :
1. array_merge_recursive() : Cette fonction combine les tableaux de manière récursive, en écrasant les clés existantes du tableau cible par les valeurs du tableau source. Il réalise sans effort la fusion souhaitée, comme le montre le code suivant :
$mergedArray = array_merge_recursive($array1, $array2);
2. Fonction de fusion personnalisée : Pour un contrôle maximal, nous pouvons créer une fonction de fusion personnalisée :
function my_array_merge(&$array1, &$array2) { $result = []; foreach ($array1 as $key => &$value) { $result[$key] = array_merge($value, $array2[$key]); } return $result; }
Cette fonction parcourt les tableaux, fusionnant les éléments correspondants en fonction de leurs clés.
La combinaison de tableaux 2D par valeurs de colonnes partagées est une opération courante. PHP fournit des fonctions natives comme array_merge_recursive() pour une fusion rapide. Cependant, pour une fusion personnalisée ou une optimisation des performances, des fonctions personnalisées peuvent être utilisées. Le choix de l'approche dépend des exigences spécifiques et du contrôle souhaité.
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!