Khai báo và sử dụng mảng có chỉ số trong PHP

PHP Tutorial | by Học PHP

Nếu chỉ dùng các biến riêng lẻ như $traiCay1, $traiCay2, $banThan1, $banThan2... thì mọi thứ sẽ trở nên lộn xộn, khó quản lý và gần như không thể mở rộng khi số lượng dữ liệu tăng lên. Đây chính là lúc mảng (array) phát huy sức mạnh. Trong PHP, mảng là một "hộp chứa" đặc biệt, cho phép bạn nhóm nhiều giá trị lại với nhau dưới một tên duy nhất. Và trong các loại mảng, mảng có chỉ số (Indexed Arrays) là dạng cơ bản và dễ tiếp cận nhất. Tưởng tượng một tủ hồ sơ với các ngăn kéo được đánh số thứ tự từ 0, 1, 2... Mỗi ngăn kéo chứa một tài liệu riêng biệt.

Mảng có chỉ số cũng hoạt động tương tự: các phần tử được sắp xếp theo một thứ tự nhất định và bạn truy cập chúng bằng các chỉ số số nguyên. Hãy cùng tìm hiểu cách khai báo, sử dụng và thao tác với loại mảng cơ bản nhưng vô cùng mạnh mẽ này trong PHP!

Mảng Là Gì và Tại Sao Cần Mảng Có Chỉ Số?

Trong lập trình, việc quản lý dữ liệu là một phần cốt yếu. Bạn thường xuyên phải làm việc với các tập hợp dữ liệu có liên quan đến nhau. Nhưng nếu không có công cụ phù hợp, việc này có thể trở nên rất lộn xộn và khó khăn.

Vấn Đề: Quá Nhiều Biến Riêng Lẻ

Hãy tưởng tượng bạn cần lưu trữ danh sách tên của 50 học sinh trong một lớp học, hoặc danh sách các ngày trong một tuần, hoặc giá của 100 sản phẩm trong một cửa hàng trực tuyến. Nếu bạn sử dụng các biến riêng lẻ cho từng mục, mọi thứ sẽ trở nên rất phi thực tế:

<?php
// Ví dụ về cách lưu trữ dữ liệu KHÔNG hiệu quả
$hocSinh1 = "Nguyễn Văn A";
$hocSinh2 = "Trần Thị B";
$hocSinh3 = "Lê Văn C";
// ... và tiếp tục đến $hocSinh50!

$ngayThuHai = "Thứ Hai";
$ngayThuBa = "Thứ Ba";
// ... đến $ngayChuNhat

// Để in ra tất cả, bạn phải viết rất nhiều dòng code lặp lại:
echo $hocSinh1 . "<br>";
echo $hocSinh2 . "<br>";
// ...
?>

Cách làm này có rất nhiều nhược điểm:

  • Mất thời gian và công sức: Phải khai báo và quản lý vô số biến.

  • Dễ sai sót: Khả năng gõ nhầm tên biến hoặc bỏ sót là rất cao.

  • Khó đọc và bảo trì: Mã nguồn dài dòng, khó hiểu khi có quá nhiều biến riêng lẻ.

  • Không linh hoạt: Nếu số lượng học sinh thay đổi, bạn phải sửa đổi rất nhiều code. Bạn không thể dễ dàng duyệt qua danh sách này bằng một vòng lặp.

Giải Pháp: Mảng (Array) – "Hộp Chứa" Đa Năng

Để khắc phục vấn đề trên, các ngôn ngữ lập trình (trong đó có PHP) cung cấp một cấu trúc dữ liệu mạnh mẽ gọi là mảng (array).

Hãy nghĩ về một mảng như một "hộp lớn" hoặc một "tập hợp" có khả năng chứa nhiều giá trị khác nhau (số, chuỗi, boolean, thậm chí cả các mảng khác) dưới một tên duy nhất. Thay vì phải tạo 50 biến $hocSinh1, $hocSinh2,..., bạn chỉ cần tạo một mảng duy nhất, ví dụ $danhSachHocSinh, và nó sẽ chứa tất cả 50 tên đó.

Mảng Có Chỉ Số (Indexed Arrays): Sự Sắp Xếp Theo Thứ Tự

Trong PHP, có nhiều loại mảng, và mảng có chỉ số (Indexed Arrays) là loại cơ bản và dễ hiểu nhất. Đúng như tên gọi, các phần tử trong loại mảng này được sắp xếp theo một thứ tự nhất định và được truy cập bằng các chỉ số số nguyên (numeric index).

  • Chỉ số bắt đầu từ 0: Trong hầu hết các ngôn ngữ lập trình (và PHP cũng vậy), chỉ số của phần tử đầu tiên trong mảng luôn là 0, phần tử thứ hai có chỉ số là 1, phần tử thứ ba là 2, và cứ thế tiếp tục.

  • Minh họa đời thường: Hãy hình dung một chiếc tủ hồ sơ có các ngăn kéo được đánh số. Ngăn kéo đầu tiên không phải là số 1 mà là số 0, ngăn tiếp theo là 1, rồi 2, và cứ thế. Mỗi ngăn kéo chứa một tài liệu (giá trị) riêng biệt. Khi bạn muốn lấy tài liệu, bạn chỉ cần biết số ngăn kéo (chỉ số) của nó.

Ví dụ về Mảng có chỉ số trong PHP:

<?php
// Giải pháp sử dụng mảng có chỉ số (hiệu quả hơn nhiều!)

// Khai báo một mảng chứa tên các ngày trong tuần
$ngayTrongTuan = ["Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy", "Chủ Nhật"];

// Để truy cập một ngày cụ thể, dùng chỉ số
echo "Ngày đầu tiên trong tuần là: " . $ngayTrongTuan[0] . "<br>"; // Chỉ số 0 là "Thứ Hai"
echo "Ngày thứ tư trong tuần là: " . $ngayTrongTuan[3] . "<br>"; // Chỉ số 3 là "Thứ Năm"

echo "<h3>Danh sách các ngày trong tuần:</h3>";
// Để in ra tất cả các ngày, bạn có thể dùng vòng lặp rất gọn gàng
for ($i = 0; $i < count($ngayTrongTuan); $i++) {
    echo "Ngày " . ($i + 1) . ": " . $ngayTrongTuan[$i] . "<br>";
}

// Khai báo một mảng chứa điểm số của học sinh
$diemSoHocSinh = [85, 92, 78, 65, 95];
echo "<br>Điểm số của học sinh thứ ba (chỉ số 2) là: " . $diemSoHocSinh[2] . "<br>"; // 78
?>

Như bạn thấy, việc sử dụng mảng có chỉ số giúp chúng ta tổ chức dữ liệu một cách gọn gàng, dễ truy cập và đặc biệt là cực kỳ thuận tiện khi kết hợp với các cấu trúc lặp (như for hoặc foreach) để xử lý toàn bộ tập dữ liệu. Đây là nền tảng vững chắc để bạn làm việc với dữ liệu trong PHP.

Mảng Có Chỉ Số (Indexed Arrays) trong PHP

Để sử dụng mảng một cách hiệu quả, điều quan trọng là phải hiểu rõ khái niệm cơ bản của chúng. Mảng có chỉ số là loại mảng phổ biến và trực quan nhất, đóng vai trò nền tảng cho nhiều cấu trúc dữ liệu phức tạp hơn.

Một mảng có chỉ số (Indexed Array) là một tập hợp có thứ tự của các giá trị. Mỗi giá trị trong tập hợp này được gọi là một phần tử (element) của mảng. Điều đặc biệt là mỗi phần tử này được gán một địa chỉ duy nhất dưới dạng một chỉ số số nguyên (integer index). Bạn có thể nghĩ chỉ số như là "số nhà" của từng phần tử trong "dãy phố" mảng của bạn.

Các phần tử trong mảng có thể chứa bất kỳ loại dữ liệu nào mà PHP hỗ trợ: số nguyên (integers), số thực (floats), chuỗi (strings), giá trị boolean (true/false), thậm chí cả các mảng khác hoặc đối tượng.

Chỉ Số (Index): Bắt Đầu Từ 0

Đây là một trong những quy tắc quan trọng nhất cần ghi nhớ khi làm việc với mảng có chỉ số trong PHP (và nhiều ngôn ngữ lập trình khác):

  • Chỉ số luôn bắt đầu từ 0.

  • Phần tử đầu tiên của mảng luôn có chỉ số là 0.

  • Phần tử thứ hai có chỉ số là 1.

  • Phần tử thứ ba có chỉ số là 2.

  • Và cứ thế tiếp tục.

Nếu một mảng có $n phần tử, thì chỉ số của phần tử cuối cùng sẽ là $n - 1.

Minh họa:

Chỉ số (Index)

Phần tử (Element)

0

Phần tử đầu tiên

1

Phần tử thứ hai

2

Phần tử thứ ba

...

...

$n - 1

Phần tử cuối cùng

Ví Dụ Cơ Bản về Chỉ Số trong Mảng

Hãy xem một vài ví dụ để làm rõ khái niệm này:

<?php
echo "<h3>Ví dụ về Chỉ số trong Mảng: Danh sách Trái cây</h3>";

// Khai báo một mảng các loại trái cây
$fruits = ["Apple", "Banana", "Cherry", "Date", "Elderberry"];

// Để truy cập một phần tử cụ thể, chúng ta dùng chỉ số của nó
echo "Phần tử ở chỉ số 0: " . $fruits[0] . "<br>"; // Apple
echo "Phần tử ở chỉ số 1: " . $fruits[1] . "<br>"; // Banana
echo "Phần tử ở chỉ số 2: " . $fruits[2] . "<br>"; // Cherry

echo "<br>";

echo "<h3>Ví dụ về Chỉ số trong Mảng: Điểm số Học sinh</h3>";

// Khai báo một mảng các điểm số
$scores = [85, 92, 78, 65, 95];

// Truy cập và in ra điểm số
echo "Điểm của học sinh đầu tiên (chỉ số 0): " . $scores[0] . "<br>"; // 85
echo "Điểm của học sinh thứ tư (chỉ số 3): " . $scores[3] . "<br>"; // 65

echo "<br>";

echo "<h3>Ví dụ về Chỉ số tự động (khi không gán)</h3>";
$myArray = []; // Khai báo một mảng rỗng

$myArray[] = "First item";  // Chỉ số tự động là 0
$myArray[] = "Second item"; // Chỉ số tự động là 1
$myArray[] = "Third item";  // Chỉ số tự động là 2

echo "Phần tử thứ nhất: " . $myArray[0] . "<br>"; // First item
echo "Phần tử thứ ba: " . $myArray[2] . "<br>";  // Third item
?>

Giải thích ví dụ:

  • Trong mảng $fruits, "Apple" là phần tử đầu tiên, nên nó có chỉ số là 0. "Banana" là phần tử thứ hai, có chỉ số 1, và cứ thế.

  • Tương tự với mảng $scores. Để lấy điểm 78, chúng ta sử dụng chỉ số 2 ($scores[2]), vì nó là phần tử thứ ba trong mảng.

  • Khi bạn thêm phần tử vào một mảng rỗng bằng cú pháp $myArray[] = value;, PHP sẽ tự động gán các chỉ số số nguyên tăng dần, bắt đầu từ 0.

Việc hiểu rõ khái niệm chỉ số và cách nó hoạt động là nền tảng để bạn có thể truy cập, sửa đổi, thêm hoặc xóa các phần tử trong mảng một cách chính xác.

Cách Khai Báo Mảng Có Chỉ Số Trong PHP

Trong PHP, có hai cách chính để khai báo một mảng có chỉ số (Indexed Array). Cả hai cách này đều tạo ra cùng một loại mảng, nhưng một cách được coi là hiện đại và phổ biến hơn.

Sử Dụng Dấu Ngoặc Vuông [] (Cách Hiện Đại và Phổ Biến)

Đây là cú pháp khai báo mảng được khuyến nghị và sử dụng rộng rãi nhất kể từ PHP 5.4 trở lên. Nó ngắn gọn, rõ ràng và trông giống cú pháp khai báo mảng trong nhiều ngôn ngữ lập trình hiện đại khác.

  • Cú pháp:

$ten_mang = [gia_tri_1, gia_tri_2, gia_tri_3, ...];

Bạn chỉ cần liệt kê các giá trị của phần tử, cách nhau bởi dấu phẩy, bên trong cặp dấu ngoặc vuông []. PHP sẽ tự động gán các chỉ số số nguyên tăng dần bắt đầu từ 0 cho các phần tử này.

Ví dụ: Khai báo danh sách trái cây

<?php
echo "<h3>1. Khai báo mảng bằng dấu ngoặc vuông `[]` (Hiện đại)</h3>";

// Khai báo một mảng các loại trái cây yêu thích
$fruits = ["Apple", "Banana", "Orange", "Grape", "Mango"];

echo "Mảng trái cây đã khai báo thành công.<br>";
echo "Phần tử đầu tiên (chỉ số 0): " . $fruits[0] . "<br>"; // Apple
echo "Phần tử thứ ba (chỉ số 2): " . $fruits[2] . "<br>"; // Orange
echo "Phần tử cuối cùng (chỉ số 4): " . $fruits[4] . "<br>"; // Mango

echo "<pre>"; // Dùng <pre> để giữ định dạng khi in mảng
print_r($fruits); // Hàm print_r() giúp in cấu trúc của mảng
echo "</pre>";
?>

Giải thích: Mảng $fruits được tạo với các phần tử "Apple" (chỉ số 0), "Banana" (chỉ số 1), v.v.

Sử Dụng Hàm array() (Cách Cũ Hơn)

Đây là cách khai báo mảng truyền thống đã có từ những phiên bản PHP đầu tiên. Mặc dù vẫn hoạt động tốt và được hỗ trợ, nhưng cú pháp [] được ưa chuộng hơn vì sự ngắn gọn và hiện đại.

Cú pháp:

$ten_mang = array(gia_tri_1, gia_tri_2, gia_tri_3, ...);

Tương tự như cú pháp [], bạn liệt kê các giá trị phần tử, cách nhau bởi dấu phẩy, nhưng lần này là bên trong cặp dấu ngoặc đơn () của hàm array(). PHP cũng sẽ tự động gán chỉ số bắt đầu từ 0.

Ví dụ: Khai báo danh sách số chẵn

<?php
echo "<h3>2. Khai báo mảng bằng hàm `array()` (Truyền thống)</h3>";

// Khai báo một mảng các số chẵn
$evenNumbers = array(2, 4, 6, 8, 10);

echo "Mảng số chẵn đã khai báo thành công.<br>";
echo "Số chẵn đầu tiên (chỉ số 0): " . $evenNumbers[0] . "<br>"; // 2
echo "Số chẵn thứ tư (chỉ số 3): " . $evenNumbers[3] . "<br>"; // 8

echo "<pre>";
print_r($evenNumbers);
echo "</pre>";
?>

Giải thích: Mảng $evenNumbers được tạo với các phần tử 2 (chỉ số 0), 4 (chỉ số 1), v.v.

Cách Truy Cập và Thao Tác Với Mảng Có Chỉ Số trong PHP

Sau khi đã biết cách khai báo mảng có chỉ số, bước tiếp theo là học cách làm việc với dữ liệu bên trong chúng. Bạn cần biết cách lấy ra một phần tử cụ thể, thêm phần tử mới, và quan trọng nhất là duyệt qua tất cả các phần tử của mảng.

Truy Cập Từng Phần Tử

Để lấy hoặc thay đổi giá trị của một phần tử cụ thể trong mảng, bạn sử dụng tên mảng theo sau là chỉ số (index) của phần tử đó đặt trong cặp dấu ngoặc vuông [].

Cú pháp: $ten_mang[chi_so]

Ví dụ: Lấy tên học sinh đầu tiên và thay đổi giá trị của phần tử thứ ba.

<?php
echo "<h3>1. Truy cập và thay đổi từng phần tử</h3>";

$hocSinhs = ["An", "Bình", "Cúc", "Dung", "Hoa"];

// Lấy tên học sinh đầu tiên (chỉ số 0)
echo "Học sinh đầu tiên: " . $hocSinhs[0] . "<br>"; // Output: An

// Lấy tên học sinh thứ tư (chỉ số 3)
echo "Học sinh thứ tư: " . $hocSinhs[3] . "<br>"; // Output: Dung

// Thay đổi giá trị của phần tử thứ ba (chỉ số 2) từ "Cúc" thành "Lan"
echo "Trước khi thay đổi, học sinh thứ ba: " . $hocSinhs[2] . "<br>"; // Output: Cúc
$hocSinhs[2] = "Lan";
echo "Sau khi thay đổi, học sinh thứ ba: " . $hocSinhs[2] . "<br>"; // Output: Lan

echo "<pre>";
print_r($hocSinhs); // Kiểm tra lại toàn bộ mảng
echo "</pre>";
?>

Lưu ý: Nếu bạn cố gắng truy cập một chỉ số không tồn tại trong mảng, PHP sẽ đưa ra một thông báo lỗi (Notice: Undefined offset).

Thêm Phần Tử Vào Cuối Mảng

Cách phổ biến và dễ nhất để thêm một phần tử mới vào cuối một mảng có chỉ số là sử dụng cú pháp dấu ngoặc vuông rỗng []. PHP sẽ tự động gán chỉ số tiếp theo trong dãy cho phần tử mới này.

Cú pháp: $ten_mang[] = gia_tri_moi;

Ví dụ: Thêm một môn học mới.

<?php
echo "<h3>2. Thêm phần tử vào cuối mảng</h3>";

$monHocs = ["Toán", "Văn", "Anh"];

echo "Danh sách môn học ban đầu: ";
echo implode(", ", $monHocs) . "<br>"; // implode() giúp nối các phần tử thành chuỗi

// Thêm môn "Lý" vào cuối mảng
$monHocs[] = "Lý";
echo "Sau khi thêm 'Lý': ";
echo implode(", ", $monHocs) . "<br>";

// Thêm môn "Hóa" vào cuối mảng
$monHocs[] = "Hóa";
echo "Sau khi thêm 'Hóa': ";
echo implode(", ", $monHocs) . "<br>";

echo "<pre>";
print_r($monHocs);
echo "</pre>";
?>

Giải thích: PHP tự động gán chỉ số 3 cho "Lý" và chỉ số 4 cho "Hóa".

Duyệt (Lặp Qua) Tất Cả Các Phần Tử Của Mảng

Đây là thao tác cực kỳ quan trọng, cho phép bạn xử lý từng phần tử trong mảng mà không cần phải truy cập từng chỉ số thủ công. PHP cung cấp hai vòng lặp chính cho việc này: forforeach.

Sử Dụng for loop

Vòng lặp for rất phù hợp khi bạn cần kiểm soát chỉ số của phần tử (ví dụ: muốn biết vị trí của phần tử, hoặc muốn duyệt theo một thứ tự cụ thể).

  • Bạn cần sử dụng hàm count($ten_mang) để lấy tổng số phần tử trong mảng. Điều này giúp vòng lặp biết khi nào thì dừng.

  • Chỉ số bắt đầu từ 0 và tăng dần cho đến khi nhỏ hơn tổng số phần tử.

  • Ví dụ: In tất cả các ngày trong tuần cùng với chỉ số của chúng.

<?php
echo "<h3>3a. Duyệt mảng bằng `for` loop</h3>";

$daysOfWeek = ["Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy", "Chủ Nhật"];

$totalDays = count($daysOfWeek); // Lấy tổng số phần tử: 7

echo "Danh sách các ngày trong tuần:<br>";
for ($i = 0; $i < $totalDays; $i++) {
    // $i là chỉ số, $daysOfWeek[$i] là giá trị
    echo "Ngày ở chỉ số " . $i . ": " . $daysOfWeek[$i] . "<br>";
}
?>

Sử Dụng foreach loop (Cách Phổ Biến và Dễ Dùng Nhất)

Vòng lặp foreach được thiết kế đặc biệt để duyệt qua các mảng một cách dễ dàng và an toàn. Nó đơn giản hóa việc truy cập từng phần tử, đặc biệt khi bạn chỉ cần lấy giá trị của từng phần tử mà không quan tâm đến chỉ số của chúng. Đây thường là lựa chọn ưu tiên cho hầu hết các trường hợp duyệt mảng.

  • Cú pháp 1 (chỉ lấy giá trị):

foreach ($ten_mang as $gia_tri) {
    // code sử dụng $gia_tri
}

Cú pháp 2 (lấy cả chỉ số và giá trị): (Tuy nhiên, với mảng có chỉ số, for thường được dùng khi bạn cần chỉ số rõ ràng hơn).

foreach ($ten_mang as $chi_so => $gia_tri) {
    // code sử dụng $chi_so và $gia_tri
}

Ví dụ: In tất cả các tên bạn bè (chỉ lấy giá trị).

<?php
echo "<h3>3b. Duyệt mảng bằng `foreach` loop</h3>";

$banBe = ["Hùng", "Mai", "Quang", "Nga"];

echo "Danh sách bạn bè của tôi:<br>";
foreach ($banBe as $tenBan) {
    echo "- " . $tenBan . "<br>";
}

echo "<br>";

// Ví dụ foreach lấy cả chỉ số và giá trị (ít dùng hơn với mảng chỉ số đơn giản, nhưng vẫn có thể)
echo "Danh sách bạn bè (có chỉ số):<br>";
foreach ($banBe as $index => $tenBan) {
    echo "Bạn thứ " . ($index + 1) . " (chỉ số " . $index . "): " . $tenBan . "<br>";
}
?>

foreach thường được ưa chuộng vì nó an toàn hơn (không bị lỗi "undefined offset" nếu chỉ số không liên tục) và dễ đọc hơn khi mục tiêu chỉ là xử lý từng phần tử.

Các Hàm Mảng Hữu Ích Cho Mảng Có Chỉ Số trong PHP

PHP cung cấp một thư viện phong phú các hàm tích hợp sẵn (built-in functions) để thao tác với mảng. Các hàm này giúp bạn thực hiện nhiều tác vụ phổ biến như đếm số phần tử, sắp xếp, thêm hoặc xóa phần tử một cách dễ dàng và hiệu quả. Dưới đây là một số hàm thường dùng nhất cho mảng có chỉ số:

count(): Đếm Số Phần Tử Trong Mảng

Hàm count() dùng để trả về số lượng phần tử hiện có trong một mảng. Đây là hàm rất quan trọng, đặc biệt khi bạn cần biết kích thước của mảng hoặc khi sử dụng vòng lặp for để duyệt mảng.

  • Cú pháp: count($array)

  • Tham số: $array - mảng bạn muốn đếm phần tử.

<?php
echo "<h3>1. Hàm `count()`</h3>";

$colors = ["Red", "Green", "Blue", "Yellow"];
$numberOfColors = count($colors);

echo "Mảng `\$colors` có " . $numberOfColors . " phần tử.<br>"; // Output: Mảng $colors có 4 phần tử.

$emptyArray = [];
echo "Mảng `\$emptyArray` có " . count($emptyArray) . " phần tử.<br>"; // Output: Mảng $emptyArray có 0 phần tử.
?>

sort(): Sắp Xếp Mảng Theo Thứ Tự Tăng Dần

Hàm sort() dùng để sắp xếp các phần tử của mảng có chỉ số theo thứ tự tăng dần. Đối với số, nó sắp xếp từ nhỏ đến lớn. Đối với chuỗi, nó sắp xếp theo thứ tự bảng chữ cái (alphabetical order, không phân biệt chữ hoa/thường theo mặc định trong một số trường hợp, nhưng thường là theo ASCII value).

  • Cú pháp: sort(&$array)

  • Tham số: &$array - mảng bạn muốn sắp xếp. Dấu & chỉ ra rằng hàm sẽ thay đổi trực tiếp mảng gốc (truyền tham chiếu).'

<?php
echo "<h3>2. Hàm `sort()` (Sắp xếp tăng dần)</h3>";

$numbers = [4, 2, 8, 1, 5];
$fruits = ["Orange", "banana", "Apple", "grape"]; // Chú ý chữ hoa/thường

echo "Mảng số ban đầu: " . implode(", ", $numbers) . "<br>";
sort($numbers);
echo "Mảng số sau khi sắp xếp: " . implode(", ", $numbers) . "<br>"; // Output: 1, 2, 4, 5, 8

echo "Mảng chuỗi ban đầu: " . implode(", ", $fruits) . "<br>";
sort($fruits);
echo "Mảng chuỗi sau khi sắp xếp: " . implode(", ", $fruits) . "<br>"; // Output: Apple, Orange, banana, grape (A, O, b, g theo ASCII)
?>

rsort(): Sắp Xếp Mảng Theo Thứ Tự Giảm Dần

Hàm rsort() tương tự như sort(), nhưng nó sắp xếp các phần tử của mảng có chỉ số theo thứ tự giảm dần (từ lớn đến nhỏ đối với số, từ Z đến A đối với chuỗi).

  • Cú pháp: rsort(&$array)

  • Tham số: &$array - mảng bạn muốn sắp xếp.

<?php
echo "<h3>3. Hàm `rsort()` (Sắp xếp giảm dần)</h3>";

$numbersDesc = [4, 2, 8, 1, 5];
$fruitsDesc = ["Orange", "banana", "Apple", "grape"];

echo "Mảng số ban đầu: " . implode(", ", $numbersDesc) . "<br>";
rsort($numbersDesc);
echo "Mảng số sau khi sắp xếp: " . implode(", ", $numbersDesc) . "<br>"; // Output: 8, 5, 4, 2, 1

echo "Mảng chuỗi ban đầu: " . implode(", ", $fruitsDesc) . "<br>";
rsort($fruitsDesc);
echo "Mảng chuỗi sau khi sắp xếp: " . implode(", ", $fruitsDesc) . "<br>"; // Output: grape, banana, Orange, Apple
?>

array_push(): Thêm Một Hoặc Nhiều Phần Tử Vào Cuối Mảng

Hàm array_push() dùng để "đẩy" một hoặc nhiều phần tử vào cuối mảng. Nó hoạt động tương tự như việc sử dụng cú pháp $array[] = value; nhưng cho phép thêm nhiều phần tử cùng lúc.

  • Cú pháp: array_push(&$array, $value1, $value2, ...)

  • Tham số:

    • &$array - mảng bạn muốn thêm phần tử vào.

    • $value1, $value2, ... - một hoặc nhiều giá trị bạn muốn thêm vào mảng.

<?php
echo "<h3>4. Hàm `array_push()`</h3>";

$students = ["Minh", "Hạnh"];
echo "Mảng học sinh ban đầu: " . implode(", ", $students) . "<br>";

array_push($students, "Lan"); // Thêm một phần tử
echo "Sau khi thêm 'Lan': " . implode(", ", $students) . "<br>"; // Output: Minh, Hạnh, Lan

array_push($students, "Dũng", "Tâm"); // Thêm nhiều phần tử
echo "Sau khi thêm 'Dũng' và 'Tâm': " . implode(", ", $students) . "<br>"; // Output: Minh, Hạnh, Lan, Dũng, Tâm
?>

array_pop(): Xóa Phần Tử Cuối Cùng Của Mảng

Hàm array_pop() dùng để xóa (và trả về) phần tử cuối cùng của mảng. Điều này hữu ích khi bạn muốn xử lý các phần tử theo thứ tự LIFO (Last In, First Out – vào sau ra trước), giống như một ngăn xếp.

  • Cú pháp: array_pop(&$array)

  • Tham số: &$array - mảng bạn muốn xóa phần tử.

  • Giá trị trả về: Phần tử đã bị xóa.

<?php
echo "<h3>5. Hàm `array_pop()`</h3>";

$tasks = ["Mua rau", "Nấu cơm", "Rửa bát", "Đi ngủ"];
echo "Danh sách công việc ban đầu: " . implode(", ", $tasks) . "<br>";

$lastTask = array_pop($tasks); // Xóa "Đi ngủ"
echo "Công việc cuối cùng đã xóa: " . $lastTask . "<br>"; // Output: Đi ngủ
echo "Danh sách công việc còn lại: " . implode(", ", $tasks) . "<br>"; // Output: Mua rau, Nấu cơm, Rửa bát

$anotherTask = array_pop($tasks); // Xóa "Rửa bát"
echo "Một công việc nữa đã xóa: " . $anotherTask . "<br>"; // Output: Rửa bát
echo "Danh sách công việc còn lại: " . implode(", ", $tasks) . "<br>"; // Output: Mua rau, Nấu cơm
?>

Kết bài

Mảng có chỉ số (Indexed Arrays) là một trong những cấu trúc dữ liệu cơ bản và mạnh mẽ nhất mà PHP cung cấp. Chúng cho phép bạn tổ chức và quản lý nhiều giá trị liên quan dưới một tên biến duy nhất, thay vì phải khai báo và theo dõi hàng loạt biến riêng lẻ. Điều này không chỉ giúp mã nguồn của bạn gọn gàng, dễ đọc mà còn cực kỳ linh hoạt khi làm việc với các tập hợp dữ liệu lớn hoặc thay đổi.

Chúng ta đã cùng nhau tìm hiểu từ những khái niệm cốt lõi: mảng là gì, cách các phần tử được đánh chỉ số bắt đầu từ 0, cho đến các phương pháp khai báo mảng bằng cả cú pháp hiện đại [] và cú pháp truyền thống array(). Hơn nữa, bạn cũng đã nắm được cách truy cập, thay đổi, thêm phần tử vào mảng, và đặc biệt là cách duyệt qua toàn bộ các phần tử bằng vòng lặp forforeach – những kỹ thuật không thể thiếu khi xử lý dữ liệu mảng. Cuối cùng, chúng ta đã điểm qua một số hàm mảng tích hợp sẵn hữu ích như count(), sort(), array_push(), và array_pop(), giúp bạn thao tác với mảng một cách hiệu quả hơn.

Bài viết liên quan