Hàm array_multisort() trong PHP

Hàm array_multisort() trong PHP
Hàm array_multisort() trong PHP

Chức năng của Hàm array_multisort() trong PHP

Hàm array_multisort() trong PHP dùng để sắp xếp các phần tử trong mảng tăng dần, giảm dần theo cột giá trị của mảng, hàm này làm thay đổi mảng gốc.

Cú pháp của Hàm array_multisort() trong PHP

array_multisort($biến_mảng_gốc);

$biến_mảng_gốc: Biến của mảng gốc.

Mặc định sẽ sắp xếp các phần tử lại theo cột giá trị tăng dần.

array_multisort($biến_mảng_gốc, cách_sắp_xếp);

$biến_mảng_gốc: Biến của mảng gốc.

cách_sắp_xếp: Cách sắp xếp, SORT_ASC sắp xếp các phần tử lại theo cột giá trị tăng dần, SORT_DESC sắp xếp các phần tử lại theo cột giá trị giảm dần.

Ví dụ Hàm array_multisort() trong PHP

<h2>Hàm array_multisort() sắp xếp cột giá trị tăng dần</h2>
<?php 
$mangchu = array("Lực","Vân","Quỳnh","Dung");
// Mặc định tăng dần
array_multisort($mangchu);
print_r($mangchu); // Kết quả: Array ( [0] => Dung [1] => Lực [2] => Quỳnh [3] => Vân )
echo "<br>";
// SORT_ASC tăng dần
$mangchu2 = array("Lực","Vân","Quỳnh","Dung");
array_multisort($mangchu2,SORT_ASC);
print_r($mangchu2); // Kết quả: Array ( [0] => Dung [1] => Lực [2] => Quỳnh [3] => Vân )
echo "<br>";

// Mảng chứa giá trị số tăng dần
$mangso = array(6,2,9,5,10,7);
array_multisort($mangso);
print_r($mangso); // Kết quả: Array ( [0] => 2 [1] => 5 [2] => 6 [3] => 7 [4] => 9 [5] => 10 )
?>

<h2>Hàm array_multisort() sắp xếp cột giá trị giảm dần</h2>
<?php
// SORT_DESC giảm dần giá trị chữ
$mangchugd = array("Lực","Vân","Quỳnh","Dung");
array_multisort($mangchugd,SORT_DESC);
print_r($mangchugd); // Kết quả: Array ( [0] => Vân [1] => Quỳnh [2] => Lực [3] => Dung )
echo "<br>";

// SORT_DESC giảm dần giá trị số
$mangsogd = array(6,2,9,5,10,7);
array_multisort($mangsogd,SORT_DESC);
print_r($mangsogd); // Kết quả: Array ( [0] => 10 [1] => 9 [2] => 7 [3] => 6 [4] => 5 [5] => 2 )
?>

Kết quả:

/////Hàm array_multisort() sắp xếp cột giá trị tăng dần
Array ( [0] => Dung [1] => Lực [2] => Quỳnh [3] => Vân )
Array ( [0] => Dung [1] => Lực [2] => Quỳnh [3] => Vân )
Array ( [0] => 2 [1] => 5 [2] => 6 [3] => 7 [4] => 9 [5] => 10 )

/////Hàm array_multisort() sắp xếp cột giá trị giảm dần
Array ( [0] => Vân [1] => Quỳnh [2] => Lực [3] => Dung )
Array ( [0] => 10 [1] => 9 [2] => 7 [3] => 6 [4] => 5 [5] => 2 )

Chạy Thử

Kinh nghiệm sử dụng array_multisort() trong PHP

Khi làm việc với dữ liệu dạng danh sách, array_multisort() phát huy hiệu quả rõ rệt khi cần sắp xếp nhiều mảng có mối liên hệ với nhau. Thay vì xử lý từng mảng riêng lẻ rồi tìm cách giữ nguyên quan hệ giữa các phần tử, bạn có thể tổ chức các mảng theo cùng một thứ tự sắp xếp.

Để sử dụng hàm ổn định, nên xác định rõ mảng nào là tiêu chí chính, tiêu chí nào dùng để phân loại tiếp khi các giá trị bị trùng. Cách tổ chức này giúp kết quả dễ kiểm soát hơn, đặc biệt khi xử lý danh sách sản phẩm, nhân viên, bài viết hoặc dữ liệu lấy từ cơ sở dữ liệu.

Sắp xếp nhiều mảng theo cùng một thứ tự

Điểm đáng chú ý của array_multisort() là có thể sắp xếp một mảng chính đồng thời với các mảng liên quan. Các phần tử ở cùng vị trí sẽ tiếp tục được giữ tương ứng sau khi thứ tự thay đổi.

Ví dụ, có danh sách tên sản phẩm và giá tương ứng. Nếu sắp xếp danh sách giá mà vẫn muốn mỗi sản phẩm đi đúng với mức giá của nó, có thể truyền hai mảng vào cùng một lần gọi hàm:

<?php
$sanPham = ['Laptop', 'Điện thoại', 'Máy tính bảng'];
$gia = [15000000, 9000000, 12000000];

array_multisort($gia, SORT_ASC, $sanPham);

print_r($sanPham);
print_r($gia);
?>

Trong trường hợp này, $gia được dùng làm tiêu chí sắp xếp chính. Khi thứ tự giá thay đổi, $sanPham cũng được điều chỉnh theo để dữ liệu không bị ghép sai.

Kết hợp array_multisort() để sắp xếp dữ liệu nhiều tiêu chí

Khi có nhiều bản ghi cùng giá trị ở tiêu chí đầu tiên, array_multisort() có thể tiếp tục sử dụng mảng phía sau làm tiêu chí phụ. Đây là cách phù hợp khi cần tạo thứ tự ưu tiên theo nhiều điều kiện.

Chẳng hạn, danh sách có thể được sắp xếp theo phòng ban trước, sau đó sắp xếp tên nhân viên trong từng phòng ban. Tiêu chí đầu tiên xác định nhóm chính, còn tiêu chí tiếp theo giúp các phần tử có cùng giá trị được sắp xếp tiếp.

Cách làm này đặc biệt hữu ích với dữ liệu có nhiều thuộc tính. Thay vì tạo nhiều vòng lặp để tự so sánh từng trường, bạn có thể xác định thứ tự ưu tiên ngay trong lời gọi array_multisort().

Những lưu ý khi sử dụng array_multisort() với mảng PHP

  • Xác định rõ mảng chính: Mảng được truyền đầu tiên thường đóng vai trò tiêu chí sắp xếp quan trọng nhất, vì vậy cần đặt đúng thứ tự ưu tiên.
  • Giữ các mảng liên quan cùng số phần tử: Nếu dữ liệu không đồng bộ, kết quả có thể không phản ánh đúng mối quan hệ giữa các phần tử.
  • Phân biệt tiêu chí chính và phụ: Khi nhiều phần tử có cùng giá trị ở tiêu chí trước, các mảng tiếp theo có thể được dùng để quyết định thứ tự.
  • Kiểm tra kiểu dữ liệu: Chuỗi số, số nguyên và chuỗi thông thường có cách so sánh khác nhau, nên cần chọn cờ sắp xếp phù hợp.
  • Không nên dùng tùy tiện với dữ liệu phức tạp: Nếu cấu trúc dữ liệu có nhiều tầng hoặc yêu cầu điều kiện sắp xếp đặc biệt, nên cân nhắc cách xử lý khác để mã nguồn dễ đọc và bảo trì.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm array_multisort() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm array_multisort() trong PHP
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !