Bài 13: Cách sắp xếp mảng trong PHP

“Hãy hòa nhã với những kẻ dở hơi. Ai biết được ngày sau bạn có thể phải làm việc cho một kẻ như vậy.”

Bill Gates

Microsoft

Trong bài học này, bạn sẽ tìm hiểu cách sắp xếp các phần tử hoặc key của một mảng theo thứ tự tăng dần hoặc giảm dần trong PHP.

Các hàm PHP để sắp xếp các mảng

Trong chương trước, bạn đã tìm hiểu rõ về mảng trong PHP, mảng là gì, cách tạo mảng, cách xem cấu trúc của mảng, cách truy cập các phần tử của chúng, v.v.

Tuy nhiên, bạn có thể làm nhiều việc hơn với các mảng như sắp xếp các phần tử theo bất kỳ cách nào bạn thích.

PHP có một số hàm được dựng sẵn (built-in function) được thiết kế đặc biệt để sắp xếp các phần tử mảng theo các cách khác nhau như theo thứ tự chữ cái hoặc số tăng dần hoặc giảm dần.

Ở bài này chúng ta sẽ khám phá một số hàm phổ biến nhất để sắp xếp các mảng.

sort() and rsort() // Sắp xếp các mảng chỉ mục
asort() and arsort() // Sắp xếp các mảng kết hợp theo value
ksort() and krsort() // Sắp xếp các mảng kết hợp theo key

1. Sắp xếp các mảng được lập chỉ mục theo thứ tự tăng dần

Hàm sort() được sử dụng để sắp xếp các phần tử của mảng được lập chỉ mục theo thứ tự tăng dần (theo thứ tự bảng chữ cái alphabe cho các chữ cái và số cho các số ).

<?php
// Define array
$colors = array("Red", "Green", "Blue", "Yellow");
 
// Sorting and printing array
sort($colors);
print_r($colors);
?>

Câu lệnh print_r() này cho kết quả như sau:

Array ( [0] => Blue [1] => Green [2] => Red [3] => Yellow )

Tương tự, bạn có thể sắp xếp các phần tử số của mảng theo thứ tự tăng dần.

<?php
// Define array
$numbers = array(1, 2, 2.5, 4, 7, 10);
 
// Sorting and printing array
sort($numbers);
print_r($numbers);
?>

Lúc này câu lệnh print_r() này cho kết quả như sau:

Array ( [0] => 1 [1] => 2 [2] => 2.5 [3] => 4 [4] => 7 [5] => 10 )

2. Sắp xếp các mảng được lập chỉ mục theo thứ tự giảm dần

Hàm rsort() được sử dụng để sắp xếp các phần tử của mảng được lập chỉ mục theo thứ tự giảm dần (theo thứ tự bảng chữ cái alphabe cho các chữ cái và số cho các số).

<?php
// Define array
$colors = array("Red", "Green", "Blue", "Yellow");
 
// Sorting and printing array
rsort($colors);
print_r($colors);
?>

Kiểm tra cấu trúc của mảng này bằng hàm print_r() cho kết quả như sau:

Array ( [0] => Yellow [1] => Red [2] => Green [3] => Blue )

Tương tự, bạn có thể sắp xếp các phần tử số của mảng theo thứ tự giảm dần với hàm rsort():

<?php
// Define array
$numbers = array(1, 2, 2.5, 4, 7, 10);
 
// Sorting and printing array
rsort($numbers);
print_r($numbers);
?>

Câu lệnh print_r() này cho đầu ra sau:

Array ( [0] => 10 [1] => 7 [2] => 4 [3] => 2.5 [4] => 2 [5] => 1 )

3. Sắp xếp các mảng kết hợp theo thứ tự tăng dần theo value (giá trị)

Hàm asort() sắp xếp các phần tử của một mảng kết hợp theo thứ tự tăng dần theo value.

Hàm này hoạt động giống như sort(), nhưng nó bảo tồn sự liên kết giữa các key và value của nó trong khi sắp xếp. Cụ thể bạn xem ví dụ bên dưới để hiểu rõ hơn.

<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
// Sorting array by value and print
asort($age);
print_r($age);
?>

Câu lệnh print_r() này cho đầu ra sau:

Array ( [Harry] => 14 [Peter] => 20 [Clark] => 35 [John] => 45 )

4. Sắp xếp các mảng kết hợp theo thứ tự giảm dần của value (giá trị)

Hàm arsort() sắp xếp các phần tử của một mảng kết hợp theo thứ tự giảm dần của giá trị.

Nó hoạt động giống như rsort(), nhưng nó bảo tồn sự liên kết giữa các key và value của nó trong khi sắp xếp.

<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
// Sorting array by value and print
arsort($age);
print_r($age);
?>

Câu lệnh print_r() này cho đầu ra như sau:

Array ( [John] => 45 [Clark] => 35 [Peter] => 20 [Harry] => 14 )

5. Sắp xếp các mảng kết hợp theo thứ tự tăng dần theo key (khóa)

Hàm ksort() sắp xếp các phần tử của một mảng kết hợp theo thứ tự tăng dần theo các khóa của chúng.

Hàm ksort() bảo tồn sự liên kết giữa các khóa và các giá trị của nó trong khi sắp xếp, giống như hàm asort()

<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
// Sorting array by key and print
ksort($age);
print_r($age);
?>

Kết quả là mảng sẽ được sắp xếp như sau:

Array ( [Clark] => 35 [Harry] => 14 [John] => 45 [Peter] => 20 )

Ở đây bạn có thể thấy mảng được sắp xếp với các key tăng dần theo thứ tự trong bảng chữ cái của bảng chữ cái alphabe.

6. Sắp xếp các mảng kết hợp theo thứ tự giảm dần theo key (khóa)

Hàm krsort() sắp xếp các phần tử của một mảng kết hợp theo thứ tự giảm dần theo các khóa của chúng.

Hàm krsort() bảo tồn sự liên kết giữa các khóa và các giá trị của nó trong khi sắp xếp, giống như hàm arsort().

<?php
// Define array
$age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35);
 
// Sorting array by key and print
krsort($age);
print_r($age);
?>

Câu lệnh print_r() này cho đầu ra sau:

Array ( [Peter] => 20 [John] => 45 [Harry] => 14 [Clark] => 35 )

TỔNG KẾT

Như vậy bạn đã biết sử dụng 1 số hàm dựng sẵn trong PHP để sắp xếp mảng.

sort() // Sắp xếp mảng chỉ mục theo thứ tự tăng dần
rsort() // Sắp xếp mảng chỉ mục theo thứ tự giảm dần
asort() // Sắp xếp mảng kết hợp tăng dần theo giá trị
arsort() // Sắp xếp mảng kết hợp giảm dần theo giá trị
ksort() // Sắp xếp mảng kết hợp tăng dần theo key
krsort() // Sắp xếp mảng kết hợp giảm giần theo key

Bài tới chúng ta sẽ học về cách sử dụng vòng lặp trong PHP.

Có thể bạn muốn xem

Thuộc tính Background trong CSS

Trong bài hướng dẫn tự học CSS này, bạn sẽ tìm hiểu cách thiết lập nền / thuộc tính background cho một phần tử bằng CSS.

Thuộc tính Màu sắc trong CSS

Trong bài hướng dẫn tự học CSS này, bạn sẽ tìm hiểu các phương pháp định nghĩa các giá trị màu khác nhau trong CSS theo 3 cách khác nhau

Leave a reply

Please enter your comment!
Please enter your name here