Hallo erstmal,
Ich habe eine Datei(XML, CVS oder Textdatei, ist für meine Frage irrelevant) mit allen Produkten eines Unternehmens, die ich alle in eine MySQL-Datenbank einfügen möchte. Dabei erstelle ich ein Array aus allen Produktnummern. Ich gehe die Datei von unten nach oben durch und prüfe mit der Funktion in_array ob die Produktnummer schon im Array $ProduktArray existiert. Falls diese noch nicht im Array vorhanden ist, füge ich sie ein, falls sie aber vorhanden ist, springe ich in der Datei zur nächsten Produktnummer. Bis dahin sollte eigentlich alles klar sein. Nun zu meinem Problem.
Es gibt ein Produkt mit der Nummer 007031106 und ein anderes mit der Nummer 7031106. Also einfach zwei Nullen am Anfang weniger. Zuerst wird die erste Nummer in das Array geschrieben, und einige Produknummer weiter ist die zweite Nummer dran. Wie schon oben beschrieben wende ich dabei die Funktion in_array an. Das sieht in diesem Fall dann so aus:
Obwohl diese Produktnummer nicht vorhanden sein sollte, und eigentlich reingeschrieben werden muß, passiert dies nicht. PHP schneidet beim Durchsuchen des Arrays anscheinend die zwei Nullen der ersten Produktnummer ab, sodaß die Nummern dann identisch aussehen. Somit wird die zweite Produktnummer gar nicht reingeschrieben, und ich hab ein Produkt weniger, was natürlich verheerend ist.
Obwohl die Nummer samt den zwei Nullen im Array gespeichert wird(kann man durch print_r($ProduktArray) überprüfen), sind für PHP beim Durchsuchen des Arrays beide Nummer identisch, sogar wenn ich die Nummern vor dem Füllen des Arrays in Strings umwandele, werden die zwei Nullen beim Vergleich abgeschnitten.
Ich bin für jede Hilfe dankbar. Doch bitte macht mir keine alternativen Lösungsvorschläge, die kenne ich selber auch, jedoch möchte ich einfach aus Prinzip und der Freude an der Lehre versuchen, das Problem auf diese Weise zu lösen.
Viele Grüße und danke im voraus
Nube2021
Ich habe eine Datei(XML, CVS oder Textdatei, ist für meine Frage irrelevant) mit allen Produkten eines Unternehmens, die ich alle in eine MySQL-Datenbank einfügen möchte. Dabei erstelle ich ein Array aus allen Produktnummern. Ich gehe die Datei von unten nach oben durch und prüfe mit der Funktion in_array ob die Produktnummer schon im Array $ProduktArray existiert. Falls diese noch nicht im Array vorhanden ist, füge ich sie ein, falls sie aber vorhanden ist, springe ich in der Datei zur nächsten Produktnummer. Bis dahin sollte eigentlich alles klar sein. Nun zu meinem Problem.
Es gibt ein Produkt mit der Nummer 007031106 und ein anderes mit der Nummer 7031106. Also einfach zwei Nullen am Anfang weniger. Zuerst wird die erste Nummer in das Array geschrieben, und einige Produknummer weiter ist die zweite Nummer dran. Wie schon oben beschrieben wende ich dabei die Funktion in_array an. Das sieht in diesem Fall dann so aus:
PHP-Code:
if (in_array(7031106, $Produktarray)) {
$Produktarray[] = 7031106;
}
Obwohl die Nummer samt den zwei Nullen im Array gespeichert wird(kann man durch print_r($ProduktArray) überprüfen), sind für PHP beim Durchsuchen des Arrays beide Nummer identisch, sogar wenn ich die Nummern vor dem Füllen des Arrays in Strings umwandele, werden die zwei Nullen beim Vergleich abgeschnitten.
Ich bin für jede Hilfe dankbar. Doch bitte macht mir keine alternativen Lösungsvorschläge, die kenne ich selber auch, jedoch möchte ich einfach aus Prinzip und der Freude an der Lehre versuchen, das Problem auf diese Weise zu lösen.
Viele Grüße und danke im voraus
Nube2021
Kommentar