Maison >développement back-end >tutoriel php >Comment puis-je fusionner des tableaux associatifs PHP tout en préservant les clés uniques ?

Comment puis-je fusionner des tableaux associatifs PHP tout en préservant les clés uniques ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-17 18:15:20299parcourir

How Can I Merge PHP Associative Arrays While Preserving Unique Keys?

Fusion de tableaux associatifs avec des clés uniques

En PHP, les tableaux associatifs utilisent des clés de chaîne pour accéder aux valeurs. Lors de la fusion de deux de ces tableaux, les clés en double peuvent entraîner la perte des valeurs d'origine. Pour éviter cela, il est nécessaire de conserver les clés d'origine tout en combinant les tableaux.

Considérons l'exemple suivant :

$array1 = [
    '11' => '11',
    '22' => '22',
    '33' => '33',
    '44' => '44'
];

$array2 = [
    '44' => '44',
    '55' => '55',
    '66' => '66',
    '77' => '77'
];

Le but est de fusionner $array1 et $array2 tel que le Le résultat préserve les clés d'origine et supprime les doublons, ce qui entraîne :

$output = [
    '11' => '11',
    '22' => '22',
    '33' => '33',
    '44' => '44',
    '55' => '55',
    '66' => '66',
    '77' => '77'
];

L'utilisation de la fonction array_unique en combinaison avec array_merge fait n'obtient pas le résultat souhaité car il réaffecte les clés. Une approche plus efficace consiste à utiliser l'opérateur, qui préserve les clés d'origine lors de la fusion de tableaux :

$output = $array1 + $array2;

Cette opération combine efficacement les deux tableaux, en écrasant les valeurs en double. Alternativement, pour recréer explicitement les clés, le code suivant peut être utilisé :

$output = array_combine($output, $output);

Les deux méthodes apportent une solution au problème de la fusion de tableaux associatifs avec des clés uniques tout en préservant les valeurs d'origine.

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