Comment additionner les valeurs des clés partagées lors de la fusion de plusieurs tableaux associatifs ?

Patricia Arquette
Libérer: 2024-11-09 18:08:02
original
589 Les gens l'ont consulté

How to Sum Values of Shared Keys When Merging Multiple Associative Arrays?

Fusion de plusieurs tableaux associatifs plats avec sommation des clés partagées

Lors de la combinaison de tableaux associatifs avec la fonction array_merge(), les valeurs associées aux clés partagées ont tendance à être remplacés plutôt que additionnés. Cela pose un défi lorsque l'on tente d'ajouter les valeurs de clés partagées à partir de plusieurs tableaux associatifs.

Pour surmonter cet obstacle, on peut adopter plusieurs approches :

  • Itération Foreach avec Suppression des erreurs :
<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
  • Anonyme Cartographie :
<code class="php">$keys = array_fill_keys(array_keys($a1 + $a2), 0);
$sums = array_map(function ($a1, $a2) { return $a1 + $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));</code>
Copier après la connexion
  • Solution combinée :
<code class="php">$sums = array_fill_keys(array_keys($a1 + $a2), 0);
array_walk($sums, function (&amp;$value, $key, $arrs) { $value = @($arrs[0][$key] + $arrs[1][$key]); }, array($a1, $a2));</code>
Copier après la connexion
  • Fonction personnalisée pour Nombre arbitraire de Tableaux :
<code class="php">function array_sum_identical_keys() {
    $arrays = func_get_args();
    $keys = array_keys(array_reduce($arrays, function ($keys, $arr) { return $keys + $arr; }, array()));
    $sums = array();

    foreach ($keys as $key) {
        $sums[$key] = array_reduce($arrays, function ($sum, $arr) use ($key) { return $sum + @$arr[$key]; });
    }
    return $sums;
}</code>
Copier après la connexion

Ces approches fournissent des solutions flexibles pour fusionner plusieurs tableaux associatifs et additionner les valeurs associées aux clés partagées.

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