Addition de 2 tableaux selon la clé
Résolu
fouraux
-
fouraux -
fouraux -
Bonjour,
voilà j'ai 2 tableau assez simple.
les voici :
et
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 !
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 !
3 réponses
-
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.
-
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 -