phpbar.de logo

Mailinglisten-Archive

[php] newbie - sortieren eines Adressfiles

[php] newbie - sortieren eines Adressfiles

Joerg Behrens php_(at)_phpcenter.de
Sun, 28 Oct 2001 17:24:04 +0100


----- 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