Maison > développement back-end > tutoriel php > Comment fusionner efficacement deux tableaux 2D basés sur une valeur de colonne partagée en PHP ?

Comment fusionner efficacement deux tableaux 2D basés sur une valeur de colonne partagée en PHP ?

DDD
Libérer: 2024-12-16 07:31:15
original
543 Les gens l'ont consulté

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

Fusion de tableaux 2D en fonction de la valeur de colonne partagée

Pour les tableaux 2D donnés :

$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

Fusion à l'aide des fonctions de tableau PHP natives

Pour fusionner les tableaux en fonction de la colonne « id » partagée, vous pouvez exploiter la fonction array_merge_recursive(). Il fusionne de manière récursive les éléments des tableaux d'entrée tout en préservant les clés :

$merged = array_merge_recursive($array1, $array2);

print_r($merged);
// Output:
// Array
// (
//     [0] => Array
//         (
//             [rank] => 579
//             [id] => 1
//             [size] => S
//             [status] => A
//         )
//     [1] => Array
//         (
//             [rank] => 251
//             [id] => 2
//             [size] => L
//             [status] => A
//         )
// )
Copier après la connexion

Fonction de fusion personnalisée

Vous pouvez également définir votre propre fonction pour fusionner des tableaux en fonction d'un clé spécifiée :

function my_array_merge($array1, $array2, $key)
{
    $result = [];
    foreach ($array1 as $item) {
        $result[$item[$key]] = array_merge($item, $array2[$item[$key]]);
    }
    return $result;
}

$merged = my_array_merge($array1, $array2, 'id');

print_r($merged);
// Output:
// Array
// (
//     [1] => Array
//         (
//             [rank] => 579
//             [id] => 1
//             [size] => S
//             [status] => A
//         )
//     [2] => Array
//         (
//             [rank] => 251
//             [id] => 2
//             [size] => L
//             [status] => A
//         )
// )
Copier après la connexion

Envisagez d'utiliser my_array_merge() lorsque vous travaillez avec de grands tableaux, car cela peut surpasser potentiellement array_merge_recursive().

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 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