Sorting Arrays
PHP has several functions that deal with sorting arrays, and this
document exists to help sort it all out.
The main differences are:
Some sort based on the array keys, whereas others by
the values: $array['key'] = 'value';
Whether or not the correlation between the keys and values are
maintained after the sort, which may mean the keys are reset
numerically (0,1,2 ...)
The order of the sort: alphabetical, low to high (ascending),
high to low (descending), numerical, natural, random, or user defined
Note: All of these sort functions act directly on the array
variable itself, as opposed to returning a new sorted array
If any of these sort functions evaluates two members as equal then the
order is undefined (the sorting is not stable).
Sorting function attributes
Function name
Sorts by
Maintains key association
Order of sort
Related functions
array_multisort
value
associative yes, numeric no
first array or sort options
array_walk
asort
value
yes
low to high
arsort
arsort
value
yes
high to low
asort
krsort
key
yes
high to low
ksort
ksort
key
yes
low to high
asort
natcasesort
value
yes
natural, case insensitive
natsort
natsort
value
yes
natural
natcasesort
rsort
value
no
high to low
sort
shuffle
value
no
random
array_rand
sort
value
no
low to high
rsort
uasort
value
yes
user defined
uksort
uksort
key
yes
user defined
uasort
usort
value
no
user defined
uasort