Maison >développement back-end >tutoriel php >Comment puis-je fusionner efficacement deux tableaux 2D en PHP en fonction d'une valeur de colonne partagée ?

Comment puis-je fusionner efficacement deux tableaux 2D en PHP en fonction d'une valeur de colonne partagée ?

DDD
DDDoriginal
2024-12-11 08:29:11459parcourir

How Can I Efficiently Merge Two 2D Arrays in PHP Based on a Shared Column Value?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn