Hallo,
Ich sehe den Weg über MySQL oder sqlite nicht als Fehler anfälliger, wie den krampfhaften Versuch, CSV-Dateien verbinden zu wollen, um die Daten in einer übersichtlichen Tabelle darzustellen.
Kleines Beispiel:
Deine beiden Dateien, könnte man auf so eine Weise verheiraten und sauber als Tabelle darstellen:
$aContacts = array_map(
function ( $contact ) { return explode("\t", $contact); }
, file( 'kontakt.csv', FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES )
);
$aCompanies = array_map(
function ( $company ) use ( $aContacts ) {
$aCompany = explode( "\t", $company );
$tblRow = null;
foreach ( $aContacts as $contact ) {
if ( end($contact) == $aCompany[0] ) {
unset( $contact[count($contact)-1] );
$tblRow = '<tr><td>' . implode( '</td><td>', array_merge($aCompany, $contact) ) . '</td></tr>';
}
}
return $tblRow;
}
, file( 'firma.csv', FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES )
);
echo '<table>' . implode( $aCompanies ) . '</table>';
Alles anzeigen
Für CSV gibt es natürlich auch entsprechende PHP-Bibliotheken, aber auch damit kommst Du nicht viel schneller und mit weniger Code ans Ziel.
Und hier haben wir nur zwei Dateien verheiratet, Du willst noch zwei weitere Abhängigkeiten schaffen, was zu immer komplexerem Code führt.
Das ist für mich eher Fehler anfällig, als den Prozess einmal in die DB zu schieben oder von dort zu importieren.
Ich persönlich halte auch den TAB nicht für den idealsten Trenner innerhalb von CSV Dateien, aber grundsätzlich macht dieser das auch Fehler anfällig, je nachdem wie die Daten in das exportierende System mal reingekommen sind.
Ich habe Dir nun jedenfalls eine Möglichkeit zur Umsetzung, sowie Suchbegriffe zwecks Alternativer Umsetzung gegeben.
Dennoch rate ich Dir gerade wenn es um ein "Monitoring" geht, eine Datenbank einzusetzen.
Gruß Arne