By GokiSoft.Com| 20:59 10/06/2020|
Tài Liệu PHP

PHP Multidimensional Arrays - Mảng đa chiều

Trong các bài trước, chúng ta đã đi qua các mảng là một danh sách duy nhất gồm cặp key/value.

Tuy nhiên, đôi khi bạn muốn lưu trữ các giá trị với nhiều hơn một khóa. Vì vậy, chúng ta có mảng đa chiều.


PHP - Multidimensional Arrays - Mảng đa chiều

Mảng đa chiều là một mảng chứa một hoặc nhiều mảng.

PHP hỗ trợ các mảng đa chiều có các cấp độ từ 2, 3, 4,.. hoặc nhiều hơn. Tuy nhiên, mảng sâu hơn 3 cấp độ là khá khó quản lý và thao tác.

Số chiều không gian của mảng chính là số ngoặc vuông với số chỉ mục index bên trong mỗi ngoặc để lấy ra phần tử trong mảng.

  • Đối với mảng hai chiều, bạn cần hai ngoặc vuông để chọn một phần tử
  • Đối với mảng ba chiều, bạn cần ba ngoặc vuông để chọn một phần tử

PHP - Two-dimensional Arrays - Mảng 2 chiều

Mảng hai chiều là mảng của mảng.

Đầu tiên, hãy xem bảng sau:

NameStockSold
Volvo2218
BMW1513
Saab52
Land Rover1715

Chúng ta có thể lưu trữ dữ liệu từ bảng trên vào mảng hai chiều, như sau:

$cars = array (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
);

Bây giờ mảng hai chiều $cars chứa bốn mảng và nó có hai chỉ mục: hàng và cột.

Để truy cập vào các phần tử của mảng $cars, chúng ta phải trỏ đến hai chỉ mục (hàng và cột):

Ví dụ

<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>

Chúng ta cũng có thể đặt một vòng lặp for bên trong một vòng for khác để lấy được phần tử của mảng $cars (chúng ta vẫn phải trỏ đến hai chỉ mục):

Ví dụ

<?php
for ($row = 0; $row < 4; $row++) {
  echo "<p><b>Row number $row</b></p>";
  echo "<ul>";
  for ($col = 0; $col < 3; $col++) {
    echo "<li>".$cars[$row][$col]."</li>";
  }
  echo "</ul>";
}
?>