Hallo Christian, hallo liebe Helfer und Leser,
Wie baue ich den Vergleich am besten auf, damit ich möglichst keine verschachtelten foreach()-Schleifen brauche?
Abhängig von der Menge der Daten ist das aber die beste Lösung.
Wenn es wirklich mehr als ein paar hundert Einträge sind, sorge dafür, dass der zu durchsuchende Array sortiert ist und verwende binary search. Der Algorithmus ist z.B. in der Wikipedia recht gut dokumentiert.
Dazu möchte ich jetzt noch eine Rückmeldung geben. Da die Aufgabe nun soweit gelöst ist, dass nur noch das Skript aus Schnipseln in eine saubere Form gegossen werden muss...
Die Lösung mit den geschachtelten Arrays ist wirklich nicht langsam. Im Extremfall sind es bisher z. B. 320 x 580 = 185.600 Vergleiche (offensichtliche Optimierungsmöglichkeiten noch nicht durchgeführt). Inklusive Datenbeschaffung, Formatauswertung (Parsen der drei betroffenen Dateien), der ganzen Maskenrechnerei usw. braucht der Prozess trotzdem keine Sekunde. Ich hab's noch nicht genau gemessen, aber über Konsole kaum den Befehl abgeschickt, schon ist die Antwort da.
Kann jetzt auch daran liegen, dass auf dem Host noch nicht viel los ist (außer den Intruder-Knaben), aber für einen Job, der alle halbe Stunde einmal läuft, spendiere ich gerne eine Sekunde.
Grüße
TS