Mảng Đa Chiều trong PHP
Ở bài học trước, bạn đã được học cách sử dụng mảng với một danh sách các cặp key/value. Tuy nhiên, đôi khi bạn muốn lưu trữ các value với nhiều hơn một key thì nó có thể được lưu trữ dưới dạng mảng đa chiều . Mảng Đa Chiều trong PHP Một mảng đa chiều chứa một hoặc nhiều mảng con khác. ...
Ở bài học trước, bạn đã được học cách sử dụng mảng với một danh sách các cặp key/value. Tuy nhiên, đôi khi bạn muốn lưu trữ các value với nhiều hơn một key thì nó có thể được lưu trữ dưới dạng mảng đa chiều.
Mảng Đa Chiều trong PHP
Một mảng đa chiều chứa một hoặc nhiều mảng con khác.
Trong PHP, mảng đa chiều là mảng có thể chứa một, hai, ba, bốn, năm hoặc nhiều mảng con khác trong cùng một mảng mẹ. Tuy nhiên, nếu mảng mẹ chứa từ ba mảng con trở lên thì rất khó để sử dụng.
Chú ý: Kích thước của mảng sẽ nói lên số chỉ mục cần có để truy xuất một phần tử.
- Đối với mảng hai chiều, cần hai chỉ mục để truy xuất một phần tử.
- Đối với mảng ba chiều, cần ba chỉ mục để truy xuất một phần tử.
Mảng Hai Chiều trong PHP
Mảng hai chiều hiểu đơn giản là mảng chứa thêm một mảng con (mảng ba chiều là một mảng chứa thêm hai mảng con).
Trước tiên, hãy xem bảng dưới đây:
Tên | Hàng còn | Đã bán |
---|---|---|
Volve | 22 | 18 |
BMW | 15 | 13 |
Saab | 5 | 2 |
Land Rover | 17 | 15 |
Dữ liệu ở bảng trên có thể lưu trữ dưới dạng mảng hai chiều như sau:
$cars= [ ["Volvo",22,18], ["BMW",15,13], ["Saab",5,2], ["Land Rover",17,15] ];
Bây giờ, mảng hai chiều $cars đã chứa 4 mảng con và có hai chỉ mục là: hàng và cột.
Để truy xuất phần tử của mảng $cars ta phải trỏ đến hai chỉ mục này (hàng và cột):
Ví dụ:
<?php echo $cars[0][0].": Hàng còn: ".$cars[0][1].", đã bán: ".$cars[0][2].".<br>"; echo $cars[1][0].": Hàng còn: ".$cars[1][1].", đã bán: ".$cars[1][2].".<br>"; echo $cars[2][0].": Hàng còn: ".$cars[2][1].", đã bán: ".$cars[2][2].".<br>"; echo $cars[3][0].": Hàng còn: ".$cars[3][1].", đã bán: ".$cars[3][2].".<br>"; ?>
Chạy Demo
Ta cũng có thể sử dụng vòng lặp for lồng vào một vòng lặp for khác để truy xuất phần tử của mảng $cars (vẫn phải trỏ vào hai chỉ mục).
Ví dụ:
<?php for ($hang = 0; $hang < 4; $hang++) { echo "<p><b>Hàng $hang</b></p>"; echo "<ul>"; for ($cot = 0; $cot < 3; $cot++) { echo "<li>".$cars[$hang][$cot]."</li>"; } echo "</ul>"; } ?>
Chạy Demo