0

Hello everybody :) this is my first question, so I hope for answer :) I've got an array of arrays like this :

Array(
    [] => Array ([category] => 3 )
    [] => Array ([price] => 5 )
    [] => Array ([rating] => 1 )
    [] => Array ([price] => 3 )
    [] => Array ([category] => 1 )
    [] => Array ([category] => 2 )
    )
)

Question : How could I sort it for ex. alphanumerically by subarray key and subarray value, so that it is converted like the one following?

Array(
    [] => Array ([category] => 1 )
    [] => Array ([category] => 2 )
    [] => Array ([category] => 3 )
    [] => Array ([price] => 3 )
    [] => Array ([price] => 5 )
    [] => Array ([rating] => 1 )
)
Radim Kleinpeter
  • 108
  • 2
  • 11
  • possible duplicate of [Sort Multi-dimensional Array by Value](http://stackoverflow.com/questions/2699086/sort-multi-dimensional-array-by-value) – dynamic Nov 09 '14 at 16:44

1 Answers1

2

You're looking for array_multisort:

$x = Array(
    Array ("category" => 3 ),
    Array ("price" => 5 ),
    Array ("rating" => 1 ),
    Array ("price" => 3 ),
    Array ("category" => 1 ),
    Array ("category" => 2 ),

);

array_multisort(
    array_map('key', $x), 
    array_map('current', $x), 
    $x);

print_r($x);
georg
  • 211,518
  • 52
  • 313
  • 390