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, ascending (low to high),
descending (high to low), 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 they retain their original order.
Prior to PHP 8.0.0, their order were undefined (the sorting was not stable).
Sorting function attributes
Function name
Sorts by
Maintains key association
Order of sort
Related functions
array_multisort
value
string keys yes, int keys no
first array or sort options
array_walk
asort
value
yes
ascending
arsort
arsort
value
yes
descending
asort
krsort
key
yes
descending
ksort
ksort
key
yes
ascending
krsort
natcasesort
value
yes
natural, case insensitive
natsort
natsort
value
yes
natural
natcasesort
rsort
value
no
descending
sort
shuffle
value
no
random
array_rand
sort
value
no
ascending
rsort
uasort
value
yes
user defined
uksort
uksort
key
yes
user defined
uasort
usort
value
no
user defined
uasort