Addition de 2 tableaux selon la clé

Résolu/Fermé
fouraux - 18 août 2015 à 18:12
 fouraux - 19 août 2015 à 08:38
Bonjour,

voilà j'ai 2 tableau assez simple.
les voici :
Array
(
    [5] => 295.62
    [6] => 18135.7
    [11] => 8915.79
    [12] => 87600.33
    [22] => 456
    [42] => 12062.19
    [43] => 180
    [73] => 800.1
    [103] => 800.1
    [134] => 1600.2
)


et
Array
(
    [2] => 62465.75
    [9] => 9718.52
    [10] => 987.92
    [12] => 15328.94
    [17] => 9360.47
    [24] => 367.58
    [27] => 1426.04
    [42] => 6677.87
    [43] => 420.18
)


j'aimerai addition la valeur si la clé est la même, et surtout garder l'ordre des clés en gros j'aimerai obtenir ca :
Array
(
[2] => 62465.75
[5] => 295.62
[6] => 18135.7
[9] => 9718.52
[10] => 987.92
[11] => 8915.79
[12] => 87600.33+15328.94 (juste le résultat)
[17] => 9360.47
[22] => 456
[24] => 367.58
[27] => 1426.04
[42] => 6677.87+12062.19
[43] => 420.18+180
[73] => 800.1
[103] => 800.1
[134] => 1600.2
)

J'ai regarder du coté de array_merge, mais il me refait toute les clés, et je dois les garder.

Merci d'avance pour votre aide !


A voir également:

3 réponses

NHenry Messages postés 15190 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 février 2025 353
18 août 2015 à 18:22
Avec un foreach, tu peux lister toutes les paires clé/valeur , ensuite avec un isset, tu vérifie si c'est présent dans l'autre tableau.
Pour l'ordre, je te laisse chercher encore un peu, car je n'ai pas d'idée précise.
0
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
Modifié par jordane45 le 18/08/2015 à 18:36
Bonjour,

Essayes ça :
<?php
$R1 = Array(
    "5" => 295.62
    ,"6" => 18135.7
    ,"11" => 8915.79
    ,"12" => 87600.33
    ,"22" => 456
    ,"42" => 12062.19
    ,"43" => 180
    ,"73" => 800.1
    ,"103" => 800.1
    ,"134" => 1600.2
);

$R2 = Array
(
    "2" => 62465.75
    ,"9" => 9718.52
    ,"10" => 987.92
    ,"12" => 15328.94
    ,"17" => 9360.47
    ,"24" => 367.58
    ,"27" => 1426.04
    ,"42" => 6677.87
    ,"43" => 420.18
);

$sums = array();
foreach (array_keys($R1 + $R2) as $key) {
    $sums[$key] = @($R1[$key] + $R2[$key]);
}

ksort($sums);

echo "<pre>";
print_r($R1);
print_r($R2);
print_r($sums);
echo "</pre>";
?>



Ce qui donne :



Cordialement,
Jordane
0
Super Jordane , c'est exactement ce que je souhaitais obtenir, un grand merci !
0