PHP Array Sort
Last Updated on Feb 14, 2023
Introduction
If you want to sort an array in PHP there are 3 factors you should have in mind:
- do you want to sort by value or by the key?
- what is the order of your sort? Natural, descending , ascending or user defined?
- do you want to keep the key association? Or do you want to remove the keys and reassign them with new indexes?
So let’s get started with some of the most useful and common array sort functions in PHP:
Original Array
We have this array and we want to sort it:
$array = [
'twitter' => 'pratham',
'feedhive' => 'simon',
'php' => 'amir',
'oliver',
'vitto',
'hassib'
];
//Array (
// [twitter] => pratham
// [feedhive] => simon
// [php] => amir
// [0] => oliver
// [1] => vitto
// [2] => hassib
// )
As you can see we have 3 items that have string as key and 3 item that have numbers as key.
Before we start, note that sort functions that we are going to see, sort the original array. They don’t return a new array.
Now let’s get started.
sort
Sorts the array based on values
It sorts the values in ascending order
It removes the keys and reindexes the array
sort($array);
print_r($array);
//Array
//(
// [0] => amir
// [1] => hassib
// [2] => oliver
// [3] => pratham
// [4] => simon
// [5] => vitto
//)
rsort
Like sort but it sorts the values in descending order
rsort($array);
print_r($array);
//Array
//(
// [0] => vitto
// [1] => simon
// [2] => pratham
// [3] => oliver
// [4] => hassib
// [5] => amir
//)
ksort
Sorts the array based on keys
It sorts the keys in ascending order
So obviously it will keep the keys and won’t remove them
ksort($array);
print_r($array);
//Array
//(
// [feedhive] => simon
// [php] => amir
// [twitter] => pratham
// [0] => oliver
// [1] => vitto
// [2] => hassib
//)
krsort
It’s like ksort but it sorts the keys ins descending order
krsort($array);
print_r($array);
//Array
//(
// [2] => hassib
// [1] => vitto
// [twitter] => pratham
// [php] => amir
// [feedhive] => simon
// [0] => oliver
//)
asort
Sorts the array based on values
It sorts the values in ascending order
It keeps the original keys and won’t remove them
asort($array);
print_r($array);
//Array
//(
// [php] => amir
// [2] => hassib
// [0] => oliver
// [twitter] => pratham
// [feedhive] => simon
// [1] => vitto
//)
arsort
Like asort but sorts the values in descending order
arsort($array);
print_r($array);
//Array
//(
// [1] => vitto
// [feedhive] => simon
// [twitter] => pratham
// [0] => oliver
// [2] => hassib
// [php] => amir
//)
Conclusion
Now you know about array sort functions in PHP.
I recommend you to open a PHP files and try to sort an array with all the functions we learnt.
If you have any suggestions, questions, or opinions, please contact me. I’m looking forward to hearing from you!
Key takeaways
- sort an array in PHP
- sort function
- rsort function
- asrot function
- arsort function
- ksort function
- krsort function
- sort functions comparison