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.
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