phpbar.de logo

Mailinglisten-Archive

[php] newbie - sortieren eines Adressfiles

[php] newbie - sortieren eines Adressfiles

Thomas Beckmann php_(at)_phpcenter.de
Sun, 28 Oct 2001 09:21:41 +0100


>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.=20
Vielleicht solltest Du Dir mal fgetcsv() anschauen, das scheint hier
sinnvoller
>Nun m=F6chte
>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=F6st.
>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[] =3D explode(';', $zeile);
Das kannst Du nun sortieren, z.B. mit usort, dazu brauchst Du eine
Vergleichsfunktion:
function plzcmp($a,$b)=20
{=20
	return $a[3]=3D=3D$b[3] ? 0 : (int)$a[3]>(int)$b[3] ? 1 : -1;
}
wobei 3 die Spalte Deines PLZ-Feldes ist (Z=E4hlung beginnt mit 0)
Dann kannst Du mit
usort($narray, 'plzcmp');
Dein $narray nach der 3. (4.) Spalte numerisch sortieren lassen.
Die Ausgabe ist dann=20
foreach ($narray as $azeile) echo join(';', $azeile)."<BR>\n";
oder so, jedenfalls sind die einzelnen Zeilen ja jetzt selbst arrays
...
Alles klar?
--=20
Thomas Beckmann, Kiel, Germany
beckmann_(at)_gis.de


php::bar PHP Wiki   -   Listenarchive