arrays - einsteigerfrage
theresa
- php
hi leute!
ich hab beliebig viele textfiles, die ich per php auswerten möchte.
jedes textfiles ist von einem anderen datum, enthält jedoch die gleichen daten. es handelt sich um logfiles eines shopsystems.
die logfiles enthalten auch immer gleich aufgebaute daten in jeder zeile steht ein neuer datensatz, wie folgt:
AAAAXXXBBBBXXXCCCCCC
A = Kundennummer
B = Produktnummer
C = Kaufdatum
X = Trennzeichen
Ich kann die Dinger schon auslesen und in 3 Arrays speichern.
Mein Problem bei der ganzen Sache ist, dass ich nicht weiß wie ich am besten Sortierungen vornehme.
ich möchte z.b. alle produkte angezeigt haben, die der kunde mit kundennummer XY gekauft hat.
hier steh ich leider völlig an...
wenn ich ne datenbank hätte, würd ich folgendes machen:
SELECT produktnummer FROM tabelle WHERE kundennummer = 'XY'
bitte um tipps/hilfe/codebeispiele.
danke,
eure theresa
Hello,
AAAAXXXBBBBXXXCCCCCC
A = Kundennummer
B = Produktnummer
C = Kaufdatum
X = Trennzeichen
Hallo Theresa, wenn immer nur nach einer Spalte sortiert werden soll, dann bietet sich ein "Spaltenarray" an.
Für jede Zeile
$_daten['kundennummer'][$zeilennummer] = substr(...);
$_daten['produktnummer'][$zeilennummer] = substr(...);
$_daten['kaufdatum'][$zeilennummer] = substr(...);
$_daten['trennzeichen'][$zeilennummer] = substr(...); ## was auch immer das sein soll.
Dann kann man das Array über jede Spalte mit den Standard-Array-Funktionen sortieren lassen.
Da die Zuordnung der Felder eines Datensatzes über $zeilennummer immer erhalten bleibt, kann man dann wahlweise nach jeder Spalte sortiert die Daten ausgeben.
Funktioniert aber eben nur für Sortierungen nach _einer_ Spalte.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
kleiner Nachtrag:
Wenn Du auf einem Linux-Server arbeitest...
bevor Du in PHP mit Arrays eventuell sehr große Textdateien sortierst, schau Dir mit der Option "--help" auch nochmal die Betriebssystemewerkzeuge "sort" und "grep" an.
Die sind auf jeden Fall leistungsfähiger, als die Arbeit mit dem PHP-Interpreter zu machen.
Mittels exec() kannst Du das aus PHP heraus auch ausführen lassen, und nachher nur auf das Ergebnis zugreifen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom