Mailinglisten-Archive |
----- Original Message -----
From: "Joerg Behrens" <indigo2_(at)_t-online.de>
To: <php_(at)_phpcenter.de>
Sent: Sunday, October 28, 2001 3:11 PM
Subject: Re: [php] newbie - sortieren eines Adressfiles
Das mit dem sortieren hatte ich ueberlesen... sorry. Um etwas zusortieren
muss man erst alles in einen Sack schmeissen (also wieder ein Array). Das
gestalten wir uns so das wir mit einer der unzaehligen *sort Funktionen
arbeiten koennen.
/* Aufbau adressen.txt
Mr.;zeppelin; test_(at)_aol.de
Joerg; Behrens ; behrens_(at)_takenet.de
Foo; Bar; foobar_(at)_example.com
John;Doe;bla_(at)_blubb.com
*/
$content = file("adressen.txt");
reset($content);
while(list($key, $value) =each($content)){
$row = explode(";", $value);
// Aufbau des neues Array mit dem Nachnamen als Key
$index = trim($row[1]);
$names[$index] = array($row[0], $row[1], $row[2]);
}
// Debugausgabe mit alphanumerischer Sortierung nach dem Key
ksort($names);
echo "<pre>";
var_dump($names);
echo "</pre>";
Zeigt ein assoziatives Array mit der 'gewuenschten'? Sortierung. Ich habe
mal bewusst Leerzeichen mit eingebaut
array(4) {
["Bar"]=>
array(3) {
[0]=>
string(3) "Foo"
[1]=>
string(4) " Bar"
[2]=>
string(20) " foobar_(at)_example.com
"
}
["Behrens"]=>
array(3) {
[0]=>
string(5) "Joerg"
[1]=>
string(8) " Behrens"
[2]=>
string(20) " behrens_(at)_takenet.de
"
}
["Doe"]=>
array(3) {
[0]=>
string(4) "John"
[1]=>
string(3) "Doe"
[2]=>
string(14) "bla_(at)_blubb.com
"
}
["zepelin"]=>
array(3) {
[0]=>
string(3) "Mr."
[1]=>
string(7) "zepelin"
[2]=>
string(13) " test_(at)_aol.de
"
}
}
Nun sollten wir uns langsam dem Ende naehern. Je nach Datenstrukur muss du
das natuerlich anpassen. Auch ein bereinigen der Daten kann sinnvoll sein
(hier mittels trim() um Leerzeichen zu entfernen).
Gruss
Joerg Behrens
php::bar PHP Wiki - Listenarchive