Sortieren mit Werten aus einer Datei

NTDY

Erfahrenes Mitglied
Ich habe Einträge in einer Datei mit dem Muster:

3#WWW#3
1#DEW#7d
2#AWS#9w

Ich lese die Datei aus:
PHP:
while($line=fgets($fp)){
	$arr = explode("#",$line);
	echo $arr[0];
	echo $arr[1];
	echo $arr[2];
}
Jetzt habe ich gelesen, dass man solche Arrays auch sortieren lassen kann.
Wie würde ich beispielsweise vorgehen, wenn ich nach der 2. Spalte, also die Werte:
"WWW,DEW,AWS" sortieren lassen wollen würde um solch ein Ergebnis zu erhalten:

2 AWS 9w
1 DEW 7d
3 WWW 3

Es soll angeblich eine Funktion array_multisort geben. Wie müßte man diese Funktion füllen um sowas zu bekommen?

LG
Andreas
 
Zuletzt bearbeitet:
Jetzt habe ich mal das multisort array getestet und es ist ... FALSCH.

PHP:
while($line=fgets($fp)){
   $arr = explode("#",$line);

array_multisort(
       $arr[0],SORT_ASC,
       $arr[1],
       $arr[2]
       );

   echo $arr[0];
   echo $arr[1];
   echo $arr[2];
 }

Leider kann ich mit mehrdimensionalen Arrays nicht so gut umgehen, sodass ich momentan ein regelrechten Denkfehler habe, wie ich die Ausgabe richtig hinbekomme.

Kann sich jemand bitte erbarmen und mir helfen?

Andreas
 
Zuletzt bearbeitet:
Die Erbarmung:
PHP:
  // Vergleichsfunktion
  function cmp($a, $b) {
    $fld = 1; // Welches Feld soll verglichen werden
    if ($a[$fld] == $b[$fld]) {return 0;}
    return ($a[$fld] > $b[$fld]) ? 1 : -1;
  }

  // Jede Zeile der Datei an # splitten
  $lines = file('datei.txt');
  for ($x = 0; $x < count($lines); $x++) {
    $arr[] = explode('#', $lines[$x]);
  }

  // Sortierung unter Zuhilfenahme der Vergleichsfunktion
  usort($arr, "cmp");

Zum besseren Verständniss, lies Dir bitte folgende Seiten durch:
--> http://de.php.net/usort
--> http://de.php.net/file

snuu
 
Zurück