Sort
Categories:
Customize sort
usort()
usort(
array &$array
,callable $callback
):bool
Sort an array by values using a user-defined comparison function
function cmp($first_value, $second_value)
{
if ($first_value == $second_value) {
return 0;
}
return ($first_value < $second_value) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
var_dump($a);
// array(5) {
// [0]=>
// int(1)
// [1]=>
// int(2)
// [2]=>
// int(3)
// [3]=>
// int(5)
// [4]=>
// int(6)
// }
return value | description |
---|---|
0 | $first_value and $second_value are equal, keep the original sort |
-1 | $first_value is smaller than $second_value , keep the original sort |
1 | $first_value is bigger than $second_value will need to change the sort, move the smaller value $second_value to the lower order |
uksort()
uksort(
array &$array
,callable $callback
):bool
Sort an array by keys
using a user-defined comparison function
uasort()
uasort(
array &$array
,callable $callback
):bool
Sort an array with a user-defined comparison function
and maintain index association
Sort Value
sort()
sort(
array &$array
,int $flags = SORT_REGULAR
):bool
Sort an array in ascending order
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
var_dump($fruits);
// array(4) {
// [0]=>
// string(5) "apple"
// [1]=>
// string(6) "banana"
// [2]=>
// string(5) "lemon"
// [3]=>
// string(6) "orange"
// }
rsort()
rsort(
array &$array
,int $flags = SORT_REGULAR
):bool
Sort an array in descending order
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
var_dump($fruits);
// array(4) {
// [0]=>
// string(6) "orange"
// [1]=>
// string(5) "lemon"
// [2]=>
// string(6) "banana"
// [3]=>
// string(5) "apple"
// }
asort()
asort(
array &$array
,int $flags = SORT_REGULAR
):bool
Sort an array in ascending order
and maintain index association
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
asort($fruits);
var_dump($fruits);
// array(4) {
// ["c"]=>
// string(5) "apple"
// ["b"]=>
// string(6) "banana"
// ["d"]=>
// string(5) "lemon"
// ["a"]=>
// string(6) "orange"
// }
arsort()
arsort(
array &$array
,int $flags = SORT_REGULAR
):bool
Sort an array in descending order
and maintain index association
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
arsort($fruits);
var_dump($fruits);
// array(4) {
// ["a"]=>
// string(6) "orange"
// ["d"]=>
// string(5) "lemon"
// ["b"]=>
// string(6) "banana"
// ["c"]=>
// string(5) "apple"
// }
natsort()
natsort(
array &$array
):bool
Sort an array using a "natural order" algorithm
$array1 = $array2 = array(
'IMG0.png',
'img12.png',
'img10.png',
'img2.png',
'img1.png',
'IMG3.png'
);
sort($array1);
echo "Standard sorting\n";
print_r($array1);
// Array
// (
// [0] => IMG0.png
// [1] => IMG3.png
// [2] => img1.png
// [3] => img10.png
// [4] => img12.png
// [5] => img2.png
// )
natsort($array2);
echo "\nNatural order sorting\n";
print_r($array2);
// Array
// (
// [0] => IMG0.png
// [5] => IMG3.png
// [4] => img1.png
// [3] => img2.png
// [2] => img10.png
// [1] => img12.png
// )
natcasesort()
natcasesort(
array &$array
):bool
Sort an array using a case insensitive "natural order"
algorithm
$array1 = $array2 = array(
'IMG0.png',
'img12.png',
'img10.png',
'img2.png',
'img1.png',
'IMG3.png'
);
sort($array1);
echo "Standard sorting\n";
print_r($array1);
// Array
// (
// [0] => IMG0.png
// [1] => IMG3.png
// [2] => img1.png
// [3] => img10.png
// [4] => img12.png
// [5] => img2.png
// )
natcasesort($array2);
echo "\nNatural order sorting (case-insensitive)\n";
print_r($array2);
// Array
// (
// [0] => IMG0.png
// [4] => img1.png
// [3] => img2.png
// [5] => IMG3.png
// [2] => img10.png
// [1] => img12.png
// )
Sort Key
ksort()
ksort(
array &$array
,int $flags = SORT_REGULAR
):bool
Sort an array by key in ascending order
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
ksort($fruits);
var_dump($fruits);
// array(4) {
// ["a"]=>
// string(6) "orange"
// ["b"]=>
// string(6) "banana"
// ["c"]=>
// string(5) "apple"
// ["d"]=>
// string(5) "lemon"
// }
krsort()
krsort(
array &$array
,int $flags = SORT_REGULAR
):bool
Sort an array by key in ascending order
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
krsort($fruits);
var_dump($fruits);
// array(4) {
// ["d"]=>
// string(5) "lemon"
// ["c"]=>
// string(5) "apple"
// ["b"]=>
// string(6) "banana"
// ["a"]=>
// string(6) "orange"
// }
Sort flag
Flag | Description |
---|---|
SORT_REGULAR | compare items normally; the details are described in the comparison operators section |
SORT_NUMERIC | compare items numerically |
SORT_STRING | compare items as strings |
SORT_LOCALE_STRING | compare items as strings , based on the current locale . It uses the locale, which can be changed using setlocale() |
SORT_NATURAL | compare items as strings using "natural ordering" like natsort() |
SORT_FLAG_CASE | can be combined (bitwise OR ) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively |