2016-08-18 3 views
0

Ich habe ein Problem beim Zusammenführen von zwei mehrdimensionalen Arrays basierend auf der gleichen ID. Im folgenden Beispiel habe ich zwei Arrays erstellt: Array1 und Array2. Beide Arrays enthalten Objekte mit der Eigenschaft ID. Basierend auf dem ID Eigenschaft sollte die Arrays zusammengefasst und das Ergebnis-Array erhalten werden:Merge zwei mehrdimensionale Array basierend auf derselben ID

Array1

Array 
(
[0] => stdClass Object 
    (
     [claimtotal] => 
     [total] => 4 
     [ID] => 3 

    ) 

[1] => stdClass Object 
    (
     [claimtotal] => 20 
     [total] => 1 
     [ID] => 4 
    ) 
) 

Array2

Array 
(
[0] => stdClass Object 
    (
     [ID] =>2 
     [name] => test1 

    ) 

[1] => stdClass Object 
    (
     [ID] => 3 
     [name] => test2 
    ) 
[2] => stdClass Object 
    (
     [ID] =>4 
     [name] => test3 
    ) 

[3] => stdClass Object 
    (
     [ID] => 5 
     [name] => test4 
    ) 
) 

result_array

Array 
(
[0] => stdClass Object 
    (
     [ID] =>2 
     [name] => test1 
     [claimtotal] => 
     [total] => 
    ) 

[1] => stdClass Object 
    (
     [ID] => 3 
     [name] => test2 
     [claimtotal] => 
     [total] => 4 
    ) 
[2] => stdClass Object 
    (
     [ID] =>4 
     [name] => test3 
     [claimtotal] => 20 
     [total] => 1 
    ) 

[3] => stdClass Object 
    (
     [ID] => 5 
     [name] => test4 
     [claimtotal] => 
     [total] => 
    ) 
) 

Wie kann ich das erreichen ?

+1

Bitte zeigen Sie uns, was Sie versucht haben, um das gewünschte Ergebnis zu erhalten – Epodax

Antwort

1

, wenn diese einfache Objekte ohne Methoden gehen:

foreach($firstArray as $key => $firstObject){ 
foreach($secondArray as $secondObject){ 
    if($firstObject['id'] === $secondObject['id']){ 
     $firstArray[$key] = (object) array_merge((array) $firstObject, (array) $secondObject); 
    }    
    } 
} 

sieht chaotisch, aber macht den Job, ohne eine weitere Schleife durch Objekteigenschaften gehen einzuführen.

Verwandte Themen