"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment additionner les valeurs des clés partagées lors de la fusion de plusieurs tableaux associatifs ?

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

Publié le 2024-11-04
Parcourir:653

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 :
$sums = array();
foreach (array_keys($a1   $a2) as $key) {
    $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0)   (isset($a2[$key]) ? $a2[$key] : 0);
}
  • Mappage anonyme :
$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));
  • Solution combinée :
$sums = array_fill_keys(array_keys($a1   $a2), 0);
array_walk($sums, function (&$value, $key, $arrs) { $value = @($arrs[0][$key]   $arrs[1][$key]); }, array($a1, $a2));
  • Fonction personnalisée pour un nombre arbitraire de tableaux :
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;
}

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3