Hàm uasort()
dùng để sắp xếp một mảng dựa vào hàm so sánh do người dùng định nghĩa. hàm so sánh này sẽ so sánh hai giá trị(value) của hai phần tử liền kề và quyết định có đổi vị trí giữa hai phần tử hay không. Nếu hàm so sánh trả về TRUE thì hai phần tử đổi vị trí, ngược lại sẽ giữ nguyên vị trí.
Lưu ý: hàm uasort()
sẽ không loại bỏ các khóa(key) cũ mà chỉ đơn thuần là sắp xếp lại thứ tự các phần tử của mảng dựa vào giá trị(value) của các phần tử.
Cú pháp
Cú pháp: uasort ( $array , $value_compare_func )
Trong đó:
Bài viết này được đăng tại [kiso.vn]
$array
là mảng cần được sắp xếp.$value_compare_func
là hàm so sánh.
Hàm uasort()
sẽ trả về TRUE nếu sắp xếp thành công và FALSE nếu thất bại.
Hàm so sánh là gì?
Theo mặc định hàm so sánh sẽ có hai tham số truyền vào, hai tham số này chính là hai phần tử liền kề nhau dùng để hoán đổi vị trí lúc sắp xếp.
Ví dụ: Giả sử bạn có một mảng gồm 4 phần tử 1, 2 ,3, 4 thì lúc này các cặp phần tử cần sắp xếp sẽ là (1,2) (2,3)(3,4).
Ví dụ
function cmp($a, $b) { if ($a == $b) { return 0; } return ($a > $b) ? 1 : -1; } // Array to be sorted $array = array('1' => 'php', '2' => 'java', '3' => 'js', '4' => 'python', '5' => 'html', '6' => 'css' ); echo "<pre>"; print_r($array); echo "</pre>"; // Sort and print the resulting array uasort($array, 'cmp'); echo "<pre>"; print_r($array); echo "</pre>";
Array ( [1] => php [2] => java [3] => js [4] => python [5] => html [6] => css ) Array ( [6] => css [5] => html [2] => java [3] => js [1] => php [4] => python )
Như đã thấy ở ví dụ trên, các cặp key => value vẫn được giữ nguyên và chỉ bị bị sắp xếp về thứ tự. đây cũng là sự khác biết giữa hàm uasort()
với hàm usort()
và uksort()
.
Tham khảo: php.net.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chínhCú phápVí dụ1. Bảo vệ khỏi tấn công DoS...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chínhCú phápVí dụ1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát hành miễn phí để tăng tính bảo mật cho...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chínhCú phápVí dụV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường dẫn đầy đủ Xét đoạn code php sau: <?php...
Directory traversal vulnerabilities (phần 3)
Nội dung chínhCú phápVí dụV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc file và tin tưởng đầu vào người dùng Xét...
Directory traversal vulnerabilities (phần 2)
Nội dung chínhCú phápVí dụIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ hổng Directory traversal cũng khác nhau. Lỗ hổng thường...