07/09/2018, 13:41

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àngcộ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

0