phpbar.de logo

Mailinglisten-Archive

[php] newbie - sortieren eines Adressfiles

[php] newbie - sortieren eines Adressfiles

Manuel Hendel php_(at)_phpcenter.de
Sun, 28 Oct 2001 13:43:13 +0100


On Sun, Oct 28, 2001 at 09:21:41AM +0100, Thomas Beckmann wrote:
> >ich mache gerade meine ersten Gehversuche mit PHP(4). Ich habe eine
> >Textdatei, in der in jeder Zeile ein Adresse, durch ";" getrennte
> >Felder, steht. Ich lese die Datei mit "file" in Array ein. 
> Vielleicht solltest Du Dir mal fgetcsv() anschauen, das scheint hier
> sinnvoller

Wie das funktioniert, geht mir nicht ganz ein. Leider schweigt sich
mein Buch darüber auch tod. Muß ich die Datei erst mit fopen() öffnen
oder wie? Ich habe fopen() schon mal ausprobiert, irgendwie hat das
nicht hingehauen.

> >Nun möchte
> >ich diese Adressen nach der Postleitzahl sortieren. Danach sollen sie
> >ausgegeben werden. Das habe ich mit "foreach ($array As $line)" und
> >ein paar "print" Anweisungen gelöst.
> >Kann mir jemand beim sortieren helfen?
> Am einfachsten ist es, wenn Du die Zeilen selbst in ein array
> zerlegst, also nach dem Einlesen
> foreach ($array as $zeile) $narray[] = explode(';', $zeile);

Das ist mir klar. explode() ist das gleiche wie split(), oder?

> Das kannst Du nun sortieren, z.B. mit usort, dazu brauchst Du eine
> Vergleichsfunktion:
> function plzcmp($a,$b) 
> { 
> 	return $a[3]==$b[3] ? 0 : (int)$a[3]>(int)$b[3] ? 1 : -1;
> }
> wobei 3 die Spalte Deines PLZ-Feldes ist (Zählung beginnt mit 0)
> Dann kannst Du mit
> usort($narray, 'plzcmp');
> Dein $narray nach der 3. (4.) Spalte numerisch sortieren lassen.
> Die Ausgabe ist dann 
> foreach ($narray as $azeile) echo join(';', $azeile)."<BR>\n";
> oder so, jedenfalls sind die einzelnen Zeilen ja jetzt selbst arrays
> ...
> Alles klar?

Nicht wirklich! Das verstehe ich nun wieder überhaupt nicht.

Ich habe die ganze Nacht darüber nachgedacht. Ich hätte die ganze
Sache mit ein paar if () Abragen und ein bißchen regex gelöst. Das ist
aber unheimlich viel Code.

Manuel

-- 
There is no doubt that my lawyer is honest. For example, when he filed his 
income tax return last year, he declared half of his salary as 'unearned 
income.' 
-Michael Lara 


php::bar PHP Wiki   -   Listenarchive