2011-01-25 4 views
0

probablement simple pour vous:plus mathématique php des valeurs numériques dans 2 tableaux associatifs

je 2 tableaux

$array1 = array(
    'foo' => 5, 
    'bar' => 10, 
    'baz' => 6 
); 

$array2 = array(
    'x' => 100, 
    'y' => 200, 
    'baz' => 30 
); 

Je souhaite obtenir un troisième tableau en combinant à la fois ce qui précède, ce qui devrait être:

$result_array = array(
    'foo' => 5, 
    'bar' => 10, 
    'baz' => 36, 
    'x' => 100, 
    'y' => 200, 
); 

y at-il construit en « tableau - chemin » de le faire, ou ce que je dois écrire ma propre fonction? Merci

Répondre

2
$resultArray = $array1; 
foreach($array2 as $key => $value) { 
    if (isset($resultArray[$key])) { 
     $resultArray[$key] += $value; 
    } else { 
     $resultArray[$key] = $value; 
    } 
} 
+0

merci, cela fonctionne. Comment se fait-il qu'il n'y ait pas de construction pour cela? En passant, je n'ai pas voté négatif des réponses sur cette page! Je ne peux pas - voter de toute façon, p – SIndhu

+1

Probablement parce que vous voulez ajouter les valeurs correspondantes, d'autres pourraient vouloir soustraire, d'autres pour faire une logique et, etc ... donc vous auriez besoin d'une fonction pour chaque opération possible. Et il n'est pas vraiment difficile d'écrire le vôtre, juste quelques courtes lignes de code –

-2

vous avez besoin

$newArray = $array1; 
foreach($array2 as $key => $value) { 
    if(array_key_exists($key, $newArray)){ 
    $newArray[$key] += $value; 
    }else{ 
    $newArray[$key] = $value; 
    } 
} 
+0

OP demande que les valeurs soient ajoutées lorsque les clés correspondent –

+0

ouais juste remarqué que je suis srry .. – bharath

+0

désolé, qui a mangé jusqu'à 6 de baz – SIndhu

1

Il n'y a pas fonction intégrée pour cela, vous devrez écrire votre propre.

+1

Vous ne savez pas pourquoi cela a été downvoted; il a explicitement et spécifiquement répondu à la question: "Y at-il une fonction, ou dois-je faire la mienne?" – Andrew

+0

+1 pour contrer le downvote. C'est une réponse précise ... – Eli

Questions connexes