Hàm usort
Hàm usort sắp xếp một mảng
theo giá trị phần tử, sử dụng
hàm callback để xác định thứ tự
các phần tử trong mảng đã sắp xếp.
Hàm thay đổi chính mảng đó.
Hàm so sánh phải trả về một số nguyên, mà tùy thuộc vào kết quả so sánh: nhỏ hơn, bằng hoặc lớn hơn không.
Cú pháp
usort(array &$array, callable $callback): bool
Ví dụ
Hãy sắp xếp mảng theo thứ tự tăng dần của các phần tử:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a < $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Kết quả thực thi mã:
[1, 2, 3, 4, 5]
Ví dụ
Và bây giờ hãy sắp xếp mảng theo thứ tự giảm dần của các phần tử:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a > $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Kết quả thực thi mã:
[1, 2, 3, 4, 5]
Ví dụ
Và bây giờ hãy sắp xếp mảng theo thứ tự tăng dần của số lượng ký tự trong các phần tử của mảng:
<?php
$arr = [
'123',
'1',
'12345',
'12',
'1234',
];
function func($a, $b)
{
if (strlen($a) === strlen($b)) {
return 0;
} else if (strlen($a) < strlen($b)) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Kết quả thực thi mã:
[
'1',
'12',
'123',
'1234',
'12345',
]
Xem thêm
-
hàm
sort,
sắp xếp theo thứ tự tăng dần của phần tử -
hàm
rsort,
sắp xếp theo thứ tự giảm dần của phần tử -
hàm
ksort,
sắp xếp theo thứ tự tăng dần của khóa -
hàm
krsort,
sắp xếp theo thứ tự giảm dần của khóa -
hàm
asort,
sắp xếp theo thứ tự tăng dần của phần tử với việc giữ nguyên khóa -
hàm
arsort,
sắp xếp theo thứ tự giảm dần của phần tử với việc giữ nguyên khóa -
hàm
natsort,
sắp xếp theo cách tự nhiên -
hàm
natcasesort,
sắp xếp theo cách tự nhiên không phân biệt chữ hoa chữ thường -
hàm
usort,
sắp xếp theo callback -
hàm
uksort,
sắp xếp theo callback theo khóa -
hàm
uasort,
sắp xếp theo callback với việc giữ nguyên khóa -
hàm
array_multisort,
sắp xếp nhiều mảng