Multidimensionales nach bestimmer Spalte nummerisch sortieren...

tomate

Erfahrenes Mitglied
Multidimensionales Array nach bestimmter Spalte nummerisch sortieren...

Hallo zusammen,

ich habe hier im Forum bereits einen Lösungsansatz gefunden.

Das Array:
$ausgabe[0][zahl][49.77];
$ausgabe[1][zahl][49.77];
$ausgabe[2][zahl][49.77];
$ausgabe[3][zahl][6.6];
$ausgabe[4][zahl][8.26];
$ausgabe[5][zahl][8.26];
$ausgabe[6][zahl][8-73];
usw...

Die Sortierfunktion:
Code:
function cmp($a1, $a2)
{
    if($a1['zahl'] == $a2['zahl'])
    {
        return 0;
    }

    return $a1['zahl'] > $a2['zahl'] ? +1 : -1;
}
usort($ausgabe, "cmp");

Das Ergebnis:
Steib, 49.77
Drei, 49.77
Leins, 49.77
Glogger, 6.6
Eiband, 8.26
Vogg, 8.26
Schuster, 8.73
Fink 8.73
Fahrenschon, 8.73
Fami, 9.3
Wimmer, 9.85

Das Problem
Die Sortierung berücksichtigt nur die erste Zahl.

Die Frage
Was muss ich machen, damit die Funktion die ganze Zahl
(z. B. 8.26 statt nur die 8) erkennt und dementsprechend
auch richtig sortiert?

Viele Grüße!
Tomate
 
Zuletzt bearbeitet:
Guten Morgen,
kann es viel. sein, dass deine Zahlen als String interpretiert werden?

Viel. hilft dir folgendes ja weiter:

PHP:
$var=doubleval($var);

Grüße ;)
 
Wenn Du Textzahlen hast (gilt auch für varchar in z.B. mysql) kannst du ja zuerst nach der Länge sortieren und danach nach dem Wert. allerdings klappt das bei Nachkommazahlen nur wenn die alle gleichlange nachkommestellen haben (logischerweise ;))

Gruss,

Bugs
 
Zurück