Thứ Tư, 27 Tháng Mười Một 2024
Trang chủPHP & MysqlPHPHàm usort() trong PHP - Sắp xếp mảng theo điều kiện tùy...

Hàm usort() trong PHP – Sắp xếp mảng theo điều kiện tùy chỉnh

Hàm usort() trong PHP – Sắp xếp mảng theo điều kiện tùy chỉnh. Sắp xếp mảng là một phần quan trọng của lập trình, trong php cung cấp rất nhiều hàm để sắp xếp mảng, trong đó có hàm usort(). Hàm usort() trong PHP là một hàm mạnh mẽ và rất thông dụng giúp bạn sắp xếp một mảng theo một điều kiện tùy chỉnh tự địng nghĩa bằng hàm Callback. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng usort() để sắp xếp mảng theo điều kiện cụ thể cũng như các ví dụ để dễ dàng nắm được hàm này.

DANH SÁCH BÀI VIẾT
ksort() trong php - Sắp xếp mảng theo khóa mảng(keys) tăng dần
Hàm asort() trong php - sắp xếp mảng tăng dần giữ nguyên khóa
Hàm usort() trong PHP - Sắp xếp mảng theo điều kiện tùy chỉnh
Hàm rsort() trong PHP - Hàm sắp xếp mảng giảm dần trong php
Hàm sort() trong php - Hàm sort() sắp xếp mảng tăng dần

Hàm usort() trong PHP

usort() là một trong những hàm sắp xếp mảng tùy chỉnh trong PHP. Hàm này cho phép bạn sắp xếp các phần tử trong mảng dựa trên một hàm so sánh do người dùng tự định nghĩa. Điều này có nghĩa là bạn có hoàn toàn quyền kiểm soát cách sắp xếp dữ liệu.

Cú pháp cơ bản hàm usrort()

Hàm usrot() trong php có cú pháp cơ bản như sau:

usort(array &$array, callable $compare_function)

Trong đó:

  • $array: Mảng cần sắp xếp.
  • $compare_function: Một hàm so sánh tùy chỉnh bạn tự định nghĩa.

>>XEM THÊM: Hàm array_rand trong PHP – Chọn phần tử ngẫu nhiên trong mảng

Ví dụ hàm usrot()

Hãy cũng thực hiện một số ví dụ hàm sắp xếp mảng bằng hàm usort() để nắm rõ cách sử dụng hàm này hơn.

Ví dụ 1: Sắp xếp một mảng số theo thứ tự tăng dần

<?php
function compareNumbers($a, $b) {
    return $a - $b;
}

$numbers = [5, 2, 8, 1, 9];
usort($numbers, 'compareNumbers');

foreach ($numbers as $number){
    echo $number . "  ";
}

Kết quả thực hiện

1 2 5 8 9

Trong ví dụ này, chúng ta đã định nghĩa hàm compareNumbers để so sánh hai phần tử của mảng. usort() sẽ dựa vào hàm này để sắp xếp mảng $numbers theo thứ tự tăng dần.

Ví dụ 2: Sắp xếp một mảng chuỗi theo bảng alphabet.

<?php
function compareNumbers($a, $b) {
    return $a > $b;
}

$fruits = array("banana", "date", "cherry", "apple");
usort($fruits, 'compareNumbers');

foreach ($fruits as $fruit){
    echo $fruit . "  ";
}

Kết quả thực hiện

apple banana cherry date

>>XEM THÊM: Hàm array_reverse trong PHP – Hàm đảo ngược thứ tự mảng

Ví dụ 3: Sắp xếp một mảng chuỗi theo độ dài chuỗi dài nhất(nhiều ký tự nhất) đến nhỏ lớn(ít ký tự nhất).

<?php
function compareNumbers($a, $b) {
    return strlen($a) < strlen($b);
}

$fruits = array("a", "bbbbbb", "cc", "ddd");
usort($fruits, 'compareNumbers');

foreach ($fruits as $fruit){
    echo $fruit . "  ";
}

Kết quả thực hiện

bbbbbb ddd cc a

Ví dụ: Sắp xếp một mảng trên mảng 2 chiều dựa vào giá trị của một giá trị cột cụ thể.

Ví dụ ta có một mảng gồm n học sinh, ta sắp xếp các học sinh này theo thứ tự tuổi tăng dần.

<?php
<?php
$students = array(
    array("name" => "Alice", "age" => 25),
    array("name" => "Bob", "age" => 21),
    array("name" => "Charlie", "age" => 30)
);
 
function compareAge($a, $b) {
    return $a["age"] - $b["age"];
}
 
usort($students, "compareAge");

print_r($students);

Kết quả thực hiện

Array (
  [0] => Array ( [name] => Bob [age] => 21 )
  [1] => Array ( [name] => Alice [age] => 25 )
  [2] => Array ( [name] => Charlie [age] => 30 )
)

>>XEM THÊM: Hàm sort() trong php – Hướng dẫn hàm sort() sắp xếp mảng

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu cách sử dụng hàm usort() trong PHP để sắp xếp mảng dựa trên một hàm so sánh tùy chỉnh tự định nghĩa. Điều này giúp bạn có khả năng tùy chỉnh cách dữ liệu của mình được sắp xếp, làm cho usort() trở thành một hàm sắp xếp mạnh mẽ nhất.

Cảm ơn bạn đã đọc hết bài viết! Nếu còn bất cứ thắc mắc nào hay góp ý, để lại bình luận bên dưới mọi người cùng trao đổi nhé!

[XEM TẤT CẢ BÀI VIẾT CHUYÊN MỤC HƯỚNG DẪN PHP TẠI ĐÂY]

XEM THÊM
Hàm rsort() trong PHP – Hàm sắp xếp mảng giảm dần trong php
Hàm array_search trong PHP – Tìm kiếm phần tử mảng (trả về key)
Hàm array_merge trong php – Hàm gộp hai mảng thành một mảng
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x