Hallo Rolf,
ich habe das jetzt mal testhalber umgesetzt und es läuft auch. Trotzdem ist mir die SQL-Lösung in Summe gesehen sympatischer, was vielleicht auch daran liegehn mag, dass ich den SQL-Ansatz gleich in 2 verschiedene Teile meines Programms habe einsetzen können.
Zudem kann ich die reine Query auch nativ im phpmyadmin imm er dort nutzen, wo ich nachträglich einen unique Index setzen möchte. Alles in allem also für mich ein sehr hilfreiches Code-Snippet. (Hierfür und überhaupt für Deine Mühe nochmal herzlichen Dank!).
Ich habe aber noch eine Frage, die mich gerade beschäftigt und in das Thema passt, nämlich würde ich gerne in meinem Array, in dem die Zeilen der CSV-Datei das Array bilden, für jede Zeile nachzählen, ob die Anzahl der Delimiter gleich ist. Das hört sich erstmal einfacher an, als es ist, wie ich finde.
$myCsvArray = explode("\n",file_get_contents($csv_datei));
foreach ($myCsvArray AS $myEinzelZeile) {
$myCount = substr_count($myEinzelZeile, '|');
}
Es fängt damit an, schwierig zu werden, dass ich keinen Anhaltswert für die "passende" Anzahl an Delimitern habe. Diese würde ich auch gerne nicht manuell vorgeben, sprich, ich müßte sie aus meinem Array erstmal ableiten. Hilfreich hierbei ist zu wissen, dass 99% der Zeilen die passende Anzahl an Delimitern vorweisen. Frage also, wie spucke ich mir die Zeilen aus, die ggf. zu wenige Delimiter haben, aus??
Meine Idee wäre, erstmal die ersten 100 Zeilen zu durchlaufen und dadurch die "passende Anzahl" an Delimitern festzulegen. Anschließend würde ich dann neu anfangen und alle Zeilen durchlaufen.
Hast Du (oder natürlich auch jeder andere) eine bessere Idee?
Pit