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