usort Problem mit Dezimalzahlen

8

Ich versuche derzeit, ein mehrdimensionales Array nach seinen Unterwerten zu sortieren. Die Struktur des Arrays ist:

%Vor%

Der Code, den ich verwende, ist:

%Vor%

wobei die Variable $ _GET ['sortby'] dem Schlüssel entspricht.

So weit, so gut, alles funktioniert, es sortiert alle Werte richtig AUSSER die Geschwindigkeit! Zuerst dachte ich, dass es etwas mit den Dezimalzahlen zu tun hat, aber days_left enthält auch Dezimalzahlen und ist korrekt sortiert.: /

Korrekte Ausgabe (Tage_links):

%Vor%

Falsche Ausgabe (Geschwindigkeit):

%Vor%

Hoffe, dass jemand mir helfen kann!

    
Yami 13.05.2013, 10:35
quelle

2 Antworten

31

Siehe usort Dokumentation. Das Float-Ergebnis wird in Integer umgewandelt. Für korrekte Arbeit benutze diesen Code:

%Vor%     
Eugene 13.05.2013, 10:41
quelle
0

Das PHP-Dokument enthält einen Kommentar, der die Lösung für dieses Problem bietet. Ein großes Dankeschön an diesen Typen.

Hier ist eine Funktion um mehrdimensionale Arrays mit Dezimalzahlen zu sortieren:

%Vor%

Benutze es genauso wie du usort() benutzt:

%Vor%     
Subin 28.06.2017 15:34
quelle

Tags und Links

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '323947',
    'url' => 'usort-issue-with-decimal-numbers',
];

$_SESSION = [
    '__flash' => [],
];