Sorting arrays is one of the most common operation in programming, and PHP provides a several functions to handle array sorting. Sorting arrays in PHP can be done by values or keys, in ascending or descending order. PHP also allows you to create custom sorting functions.
Sort an Array in Ascending Order - sort() Function
The sort() function is used to sort an array by values in ascending order. It reindexes the array numerically after sorting the array elements. It means the original keys are lost.
Syntax:
sort(array &$array, int $sort_flags = SORT_REGULAR);
Example: Sort the array elements in ascending order using PHP sort() function.
PHP
<?php
$arr = array(40, 61, 2, 22, 13);
sort($arr);
print_r($arr);
?>
OutputArray
(
[0] => 2
[1] => 13
[2] => 22
[3] => 40
[4] => 61
)
Sort an Array in Descending Order - rsort() Function
The rsort() function sorts an array by values in descending order. Like sort(), it reindexes the array numerically.
Syntax:
rsort(array &$array, int $sort_flags = SORT_REGULAR);
Example: Sort the array elements in descending order using PHP rsort() function.
PHP
<?php
$arr = array(40, 61, 2, 22, 13);
rsort($arr);
print_r($arr);
?>
OutputArray
(
[0] => 61
[1] => 40
[2] => 22
[3] => 13
[4] => 2
)
Sort an Array in Ascending Order According to Array Values - asort() Function
The asort() function sorts an array by values in ascending order while maintaining the key-value association.
Syntax:
asort(array &$array, int $sort_flags = SORT_REGULAR);
Example: Sort the array in ascending order according to array values using PHP rsort() function.
PHP
<?php
$arr = array(
"Ayush"=>"23",
"Shankar"=>"47",
"Kailash"=>"41"
);
asort($arr);
print_r($arr)
?>
OutputArray
(
[Ayush] => 23
[Kailash] => 41
[Shankar] => 47
)
Sort an Array in Descending Order According to Array Value - arsort() Function
The arsort() function sorts an array by values in descending order while maintaining the key-value association.
Syntax:
arsort(array &$array, int $sort_flags = SORT_REGULAR);
Example: Sort the array in descending order according to array values using PHP arsort() function.
PHP
<?php
$arr = array(
"Ayush"=>"23",
"Shankar"=>"47",
"Kailash"=>"41"
);
arsort($arr);
print_r($arr);
?>
OutputArray
(
[Shankar] => 47
[Kailash] => 41
[Ayush] => 23
)
Sort an Array in Ascending Order According to Array Key - ksort() Function
The ksort() function sorts an array by keys in ascending order, preserving key-value pairs.
Syntax:
ksort(array &$array, int $sort_flags = SORT_REGULAR);
Example: Sort the array in ascending order according to array ket using PHP ksort() function.
PHP
<?php
$arr = array(
"Ayush"=>"23",
"Shankar"=>"47",
"Kailash"=>"41"
);
ksort($arr);
print_r($arr)
?>
OutputArray
(
[Ayush] => 23
[Kailash] => 41
[Shankar] => 47
)
Sort Array in Descending Order According to Array Key - krsort() Function
The krsort() function sorts an array by keys in descending order, preserving key-value pairs.
Syntax:
krsort(array &$array, int $sort_flags = SORT_REGULAR);
Example: Sort the array in descending order according to array ket using PHP krsort() function.
PHP
<?php
$arr = array(
"Ayush"=>"23",
"Shankar"=>"47",
"Kailash"=>"41"
);
krsort($arr);
print_r($arr)
?>
OutputArray
(
[Shankar] => 47
[Kailash] => 41
[Ayush] => 23
)
Sort an Array using User-Defined Comparison Function - uasort() Function
The uasort() function sorts an array with a user-defined comparison function, while maintaining the key-value association.
Syntax:
uasort(array &$array, callable $callback);
Example: Sort an array using comparison function (user defined) in uasort() function.
PHP
<?php
// User defined comparator function
function sort_array($a, $b) {
if ($a==$b) return 0;
return ($a<$b)?-1:1;
}
// Input Array
$arr = array(
"a" => 4,
"b" => 2,
"g" => 8,
"d" => 6,
"e" => 1,
"f" => 9
);
uasort($arr,"sort_array");
// Print the sorted array
print_r($arr);
?>
OutputArray
(
[e] => 1
[b] => 2
[a] => 4
[d] => 6
[g] => 8
[f] => 9
)