2016-11-08 5 views
-3

Entschuldigung, ich habe so viele Beiträge gelesen, um Sinn zu machen und habe mich endlich verwirrt!PHP-Array Werte von einem Array in ein anderes zusammenführen

Ich habe 2 Arrays:

Array 1:

Array (

[0] => Array ([ID] => SI[Date] => 06/01/2016 [Month] => 1 [Tier1] => 2.188875 [Tier2] => [Tier3] => [Tier4] => [Delivery] => 0) 

[1] => Array ([ID] => SI[Date] => 06/01/2016 [Month] => 1 [Tier1] => 2.139 [Tier2] => 0 [Tier3] => 0 [Tier4] => 0 [Delivery] => 0) 

[2] => Array ([ID] => SI[Date] => 14/01/2016 [Month] => 1 [Tier1] => 0.201 [Tier2] => 0 [Tier3] => 0 [Tier4] => 0 [Delivery] => 0) 

) 

Array 2: (Enthält alle Rechnungen mit Versandkosten)

Array ( 
[SI000005] => 25 
[SI000010] => 15 
[SI000054] => 20 
[SI000069] => 0 
[SI000074] => 20 
[SI000076] => 16 
) 

I Array 1 aktualisieren müssen, wo SI00000x Spiele und schieben Sie den Wert von Array 2 in den Wert [Delivery] in Array 1.

Ich bin Sicher, das ist einfach, aber alles, was ich versuche, dauert entweder ein Alter oder stürzt ab!

Bitte helfen!

Antwort

3

Sie könnten dies nutzen (man beachte die ampersand):

foreach ($arr1 as &$rec) { 
    if (isset($arr2[$rec['ID']])) $rec['Delivery'] = $arr2[$rec['ID']]; 
} 
+0

Danke für die Hilfe! Arbeitete eine Belohnung. – Giles

0
foreach ($array1 as &$a1) { 
    if (isset($array2[$a1['ID']])) { 
     $a1['Delivery'] = $array2[$a1['ID']]; 
    } 
} 
+1

aktualisiert. Die Änderungen bleiben außerhalb der Schleife bestehen. – Jaime

1

Versuchen Sie, diese (eine Referenz)

foreach ($array1 as &$a1) { 
    if(isset($array1[$a1['ID']])) $a1['Delivery'] = $array1[$a1['ID']]; 
} 
+0

Warum sollte das OP "das versuchen"? Eine *** gute Antwort *** wird immer eine Erklärung haben, was getan wurde und warum es so gemacht wurde, nicht nur für das OP, sondern auch für zukünftige Besucher von SO. –

Verwandte Themen