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 :
<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>
<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>
<code class="php">$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));</code>
<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>
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!