Maison  >  Article  >  développement back-end  >  Comment fusionner des tableaux avec des clés identiques et conserver toutes les données ?

Comment fusionner des tableaux avec des clés identiques et conserver toutes les données ?

DDD
DDDoriginal
2024-11-03 12:15:29609parcourir

How to Merge Arrays with Identical Keys and Preserve All Data?

Fusion de tableaux avec des clés identiques : surmonter les limites de array_merge

Dans le développement de logiciels, la fusion de tableaux avec des clés identiques peut être une tâche courante. Cependant, la fonction array_merge ne parvient souvent pas à combiner tous les éléments avec les mêmes clés, ce qui entraîne une perte de données.

Considérez l'exemple suivant :

<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3);
$B = array('c' => 4, 'd' => 5);

array_merge($A, $B);

// Result
 [a] => 1 [b] => 2 [c] => 4 [d] => 5</code>

Comme démontré, la valeur d'origine de 'c ' => 3 est perdu après la fusion. Pour résoudre ce problème, une approche alternative est nécessaire.

Solution : array_merge_recursive

La solution réside dans l'utilisation de la fonction array_merge_recursive à la place. Contrairement à array_merge, array_merge_recursive fusionne récursivement les clés et les valeurs des tableaux d'entrée, en préservant toutes les données.

Le code suivant illustre cette approche :

<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3);
$B = array('c' => 4, 'd' => 5);

array_merge_recursive($A, $B);

// Result
 [a] => 1 [b] => 2 [c] => [0 => 3, 1 => 4] [d] => 5</code>

Comme vous pouvez le voir, les deux valeurs associées à Les « c » sont conservés. Cependant, comme il ne peut y avoir qu'une seule clé « c » dans le tableau fusionné, le résultat devient un tableau dans un tableau.

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