PHP – Mảng đa chiều

Ở chương PHP căn bản, chúng ta đã tìm hiểu về mảng chứa các cặp key/value. Trong chương này chúng ta sẽ mở rộng ra mảng có thể chứa mảng khác, hay mảng đa chiều (Multidimensional Arrays).

Mảng đa chiều

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

PHP có thẻ hiểu mảng đa chiều nhiều cấp độ. Nhưng mảng từ cấp độ 3 trở lên rất khó quản lý.

Số chiều của mảng là số chỉ mục bạn cần đẻ chọn 1 phần tử.

Đối với mảng hai chiều, bạn cần hai chỉ mục để chọn một phần tử

Đối với mảng ba chiều, bạn cần ba chỉ mục để chọn một phần tử

Mảng hai chiều

Mảng 2 chiểu là một mảng chứa mảng. (Mảng 3 chiều là mảng chứa mảng chứa mảng khác).

Name Stock Sold
Volvo 22 18
BMW 15 13
Saab 5 2
Land Rover 17 15

Bạn có thể lưu trữ bảng trên trong một mảng 2 chiều.

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

Mảng 2 chiều $cars chứa 4 mảng và nó có 2 chỉ mục : row và column.

Để truy cập vào các phần tử của $cars, chúng ta cần hai chỉ mục (row và column):

<?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 trong một vòng lặp for khác để lấy các phần tử của mảng $cars.

<?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>";
}
?>