Zur Navigation

mit array_multisort mehrere Spalten mit verschiedenem Typ sortieren

1 AndiN

Hallo Jörg,

ich habe ein Array mit einer Spalte "kat" in welcher ich alphabetisch sortieren möchte und - davon abhängig - eine zweite Spalte "km" numerisch. Die Spalte "kat" enthält Strings, die Spalte "km" enthält Zahlen mit Nachkommastellen.

foreach($array_objekte as $key => $row)
{
	$array_kat[$key] = $row['kat'];
	$array_km[$key] = $row['km'];
}

array_multisort($array_kat,SORT_ASC,$array_km,SORT_ASC,SORT_STRING,$array_objekte);

Bisher sortiere ich beides nur als Strings. Das funktioniert aber nicht.

Ausgabe ist so:
Schwimmbäder
Schwimmbad1 (19,3 km)
Schwimmbad2 (36,7 km)
Schwimmbad3 (38,9 km)

Bahnhöfe
Bahnhof1 (14,0 km)
Bahnhof2 (23,3 km)

Flughäfen
Flughafen1 (136 km)
Flughafen2 (209 km)
Flughafen3 (58,6 km)

sollte jedoch so sein (beachte die Sortierung der Flughäfen nach Kilometern!):

Schwimmbäder
Schwimmbad1 (19,3 km)
Schwimmbad2 (36,7 km)
Schwimmbad3 (38,9 km)

Bahnhöfe
Bahnhof1 (14,0 km)
Bahnhof2 (23,3 km)

Flughäfen
Flughafen3 (58,6 km)
Flughafen1 (136 km)
Flughafen2 (209 km)

Die Sortierung/Gruppierung nach Kategorien (Spalte "kat") funktioniert offenbar. Die Sortierung nach Kilometern prinzipiell auch allerdings sobald ich Zahlen mit und ohne Komma habe nicht mehr. Wie kriege ich das hin?

21.11.2012 13:45

2 Jörg

Anstelle von SORT_STRING würde ich SORT_NUMERIC für die Sortierung der Kilometerzahlen verwenden.

25.11.2012 17:04

1 Forenmitglied fand diesen Beitrag gut

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]