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
Libérer: 2024-12-11 08:29:11
original
407 Les gens l'ont consulté

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'],
];
Copier après la connexion

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'],
]
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal