2017-10-30 6 views
-1

Ich muss dieses Array in absteigender Reihenfolge sortieren, aber ich bin derzeit fest und kann nicht an eine einfache Lösung denken.Sortierung mehrdimensionalen Array in PHP mit Schlüsselwerten

Dies ist die Array-Struktur:

 
$data = Array 
(
    [Name1] => Array 
     (
      [1] => 40-45 
      [0] => 124791.63 
     ) 

    [Name2] => Array 
     (
      [1] => 46 
      [0] => 2624.7 
     ) 

    [Name3] => Array 
     (
      [1] => 50 
      [0] => 37784.27 
     ) 

    [Name4] => Array 
     (
      [1] => 52 
      [0] => 1008 
     ) 
) 

ich es von Wert $ data [Name1] [0], in absteigender Reihenfolge sortieren möchten, wie Sie die aktuelle Array, da die nicht sortiert ist sehen gehen Werte wie folgt aus:

124.791,63 bis 2624,7 - 37.784,27 ... etc

gibt es eine einfache Lösung für dieses? Ich habe gegoogelt, aber ich konnte keine Antwort auf dieses spezielle Problem finden.

+2

Dies ziemlich viel gefragt wurde ... Sie haben bei den anderen Fragen zu ‚Sortierung mehrdimensionales Array‘ gesucht und gefunden sie hast du nicht herausgefunden, wie du es brauchst? – IncredibleHat

+0

'array_multisort ($ data, array_column ($ data, 0))' sollte es tun. Oder geben Sie ein paar mehr Funktionen für die Suche nach. – jh1711

+0

Verrückt die Anzahl der Duplikate auf diese Frage, suchen Sie nach Ihrem Freund! (Kann heute nicht mehr kennzeichnen: -0 – Nic3500

Antwort

0

Eine Option hierfür ist uasort.

Zum Beispiel:

$data = [ 
    'Name1' => [ 
     "124791.63", 
     "40-45" 
    ], 
    'Name2' => [ 
     "2624.7", 
     "46" 
    ], 
    'Name3' => [ 
     "37784.27", 
     "50" 
    ], 
    'Name4' => [ 
     "1008", 
     "52" 
    ] 
]; 


function sortByValue($a, $b) { 
    return $a[0] < $b[0]; 
} 

uasort($data, 'sortByValue'); 

echo "<pre>"; 
print_r($data); 

Wird in Folge:

Array 
(
    [Name1] => Array 
     (
      [0] => 124791.63 
      [1] => 40-45 
     ) 

    [Name3] => Array 
     (
      [0] => 37784.27 
      [1] => 50 
     ) 

    [Name2] => Array 
     (
      [0] => 2624.7 
      [1] => 46 
     ) 

    [Name4] => Array 
     (
      [0] => 1008 
      [1] => 52 
     ) 

) 
Verwandte Themen