Jonas: 2 Arrays in bestimmten Feldern vergleichen

Beitrag lesen

Hi

Also, da ich hier schon oft schnelle Hilfe fand, hoffe ich, dass irgend ein Perl-Master mir bei meinem Problem (erneut) weiterhelfen kann ;)

Zu besagtem Problem:

Ich habe zwei Arrays, die folgendermassen aufgebaut sind.

"newarray":
id1|name1|datum1|autor1
id2|name2|datum2|autor2

"oldarray":
oid1|oname1|odatum1|oautor1
oid2|oname2|odatum2|oautor2

Das Ganze kommt aus einem .txt-File, das als Datenbank erhalten muss.

Nun will ich die beiden Arrays bezüglich das Feldes name# und oname# vergleichen. Dabei sollten Werte aus oldarray, die in newarray erhalten sind, durch die Werte von newarray ersetzt werden. Werte, die es in oldarray gibt, aber in newarray nicht, sollen beibehalten werden. Zu gut deutsch: oldarray soll mit newarray ergänzt werden, ohne doppelte Einträge bezüglich des Feldes name# bzw. oname#.

Mein spontaner Ansatz waren verschachtelte foreach-Schleifen, wobei natürlich jedes Element des aus der Datei stammenden Arrays erst mittels split() getrennt werden muss, damit ich direkt zum Vergleich auf die Werte der "Spalte" name zugreifen kann.

Irgendwie werde ich aber das Gefühl nicht los, dass ich mit den verschachtelten foreach-schlaufen nicht unbedingt die schnellste, ressourcenschonendste und eleganteste lösung habe!

Kennt da jemand einen klügeren Ansatz? (Ich hoffe doch ;))

Gruss und Dank

Jonas