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

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

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

Sortie :

Array
(
    [a] => 3
    [b] => 9
    [c] => 7
    [d] => 10
)
Copier après la connexion

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

Sortie :

<code class="php">Array
(
    [a] => 5
    [b] => 9
    [c] => 12
    [d] => 10
)</code>
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal