Maison >développement back-end >tutoriel php >Comment fusionner des tableaux associatifs avec des valeurs additionnées pour les clés partagées ?

Comment fusionner des tableaux associatifs avec des valeurs additionnées pour les clés partagées ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 12:14:29590parcourir

How to Merge Associative Arrays with Summed Values for Shared Keys?

Fusionner des tableaux associatifs avec des valeurs additionnées pour les clés partagées

La fusion de plusieurs tableaux associatifs tout en combinant des valeurs pour des clés partagées peut être une tâche courante mais difficile . Cet article présente plusieurs solutions pour résoudre ce problème.

Fusion de tableaux avec sommation

L'objectif est de fusionner deux ou plusieurs tableaux associatifs plats (tableaux avec des clés de chaîne et non -valeurs de tableau) et additionnez les valeurs associées à des clés identiques. Cela diffère du comportement par défaut de la fonction array_merge() qui remplace les valeurs des clés en double.

Exemples

Considérez l'exemple suivant :

<code class="php">$a1 = array("a" => 2, "b" => 0, "c" => 5);
$a2 = array("a" => 3, "b" => 9, "c" => 7, "d" => 10);</code>

Si nous devions utiliser array_merge() pour combiner ces tableaux, le résultat serait :

<code class="php">$a3 = array_merge($a1, $a2);
print_r($a3); </code>

Sortie :

Array
(
    [a] => 3
    [b] => 9
    [c] => 7
    [d] => 10
)

Comme vous pouvez le voir, les valeurs des clés partagées ( "a", "b", "c") ne sont pas additionnés mais remplacés.

Solutions personnalisées

Pour obtenir le résultat souhaité, nous pouvons utiliser une fonction personnalisée qui parcourt les clés des tableaux combinés et additionne les valeurs des clés partagées. Voici une telle implémentation :

<code class="php">$sums = array();
foreach (array_keys($a1 + $a2) as $key) {
    $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0) + (isset($a2[$key]) ? $a2[$key] : 0);
}</code>

Sortie :

<code class="php">Array
(
    [a] => 5
    [b] => 9
    [c] => 12
    [d] => 10
)</code>

Cette fonction nous permet de fusionner plusieurs tableaux avec des clés partagées et fournit les valeurs additionnées pour ces clés.

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