PHP usort() Function
Quick summary: The PHP usort() function sorts an array by values using a custom comparison function.
PHP usort() Syntax
usort(array &$array, callable $callback): bool
PHP
PHP usort() Basic examples
$nums = [3,1,2];
usort($nums, fn($a,$b)=>$a<=>$b);
var_dump($nums);
PHP
Output:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
Sorts values using a custom comparator.
PHP usort() Real-world usage
$users = [['age'=>30],['age'=>20]];
usort($users, fn($a,$b)=>$a['age']<=>$b['age']);
var_dump($users);
PHP
Output:
array(2) { [0]=> array(1){["age"]=>int(20)} [1]=> array(1){["age"]=>int(30)} }
Sorts complex arrays.
PHP usort() Edge cases
$arr = [];
usort($arr, fn()=>0);
var_dump($arr);
PHP
Output:
array(0) { }
Sorting an empty array does nothing.
PHP usort() Common mistakes
Expecting keys to be preserved
usort reindexes the array.
Incorrect
usort(['a'=>2,'b'=>1], fn($a,$b)=>$a<=>$b);
Correct
uasort(['a'=>2,'b'=>1], fn($a,$b)=>$a<=>$b);
Use uasort to preserve keys.
PHP usort() Frequently Asked Questions
What does usort() do in PHP?
usort() sorts an array using a user-defined comparison function.
Does usort() modify the original array?
Yes, it sorts the array in place.
Does usort() preserve keys?
No, keys are reindexed.
What does the comparison function return?
An integer less than, equal to, or greater than zero.
Is usort() stable?
No, order of equal elements is not guaranteed.
Use case of usort()?
Sorting complex data structures.
Can sort objects?
Yes.
Performance?
Depends on array size.
Alternative?
sort() or uasort().
Supports associative arrays?
Yes, but keys reset.
Can sort descending?
Yes, via callback.
Can use spaceship operator?
Yes, recommended for comparison.