mehrdimensionales Array sortieren

weedy2k

Grünschnabel
hallo

ich habe ein problem mit einer Sortier routine!

function _compare($a, $b){
return ($a == $b ? strcmp($a['name'], $b['name']) : strcmp($a['wert'], $b['wert']));
}

$array2 = array(
array("name" => "agent4","wert" => "2"),
array("name" => "agent2","wert" => "3"),
array("name" => "agent3","wert" => "10"),
array("name" => "agent1","wert" => "8")
);

usort($array2, "_compare");
print_r($array2);


er soll das gesamte array sortieren basierend auf dem "wert"
das ganze funktioniert soweit auch. AUSSER ich habe 2 stellige Zahlen.
diese werden dann behandelt als wären sie kleiner als 1 und stehen damit an der falschen seite des sortierergebnisses.

gibt es eine möglichkeit die werte komplett richtig zu sortieren?

ergebnis müsste in dem bespiel sein:
agent4 = 2
agent2 = 3
agent1 = 8
agent3 = 10

so müsste sortiert werden!

mfg
weedy
 
Liegt das nicht nur daran das Du die Zahlen als Text in das Array aufnimmst?

Die Zahlen sind in Anführungszeichen und werden somit als Text gewertet, so gesehen stimmt dann auch die jetztige Sortierung.

Gruß Thomas
 
Zurück