Mảng đa chiều

Tổng quan

Ở trong bài trước, chúng ta đã được biết mảng là một danh sách gồm các cặp khóa và giá trị. Tuy nhiên, đôi khi chúng ta muốn lưu nhiều giá trị với nhiều hơn một khóa. Điều này được gọi là mảng đa chiều

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.

Mảng đa chiều trong php có độ sâu hai, ba, bốn, năm, hoặc nhiều hơn. Tuy nhiên, mảng có độ sâu hơn 3 thì đã tương đối khó quản lý với hầu hết mọi người.

Số chiều của một mảng chỉ ra số lượng chỉ số để xác định một phần tử

  • Với mảng 2 chiều, bạn cần 2 chỉ số để xác định 1 phần tử.
  • Với mảng 3 chiều, bạn cần 3 chỉ số để xác định 1 phần tử.

Mảng hai chiều

Mảng hai chiều là một mảng các phần tử mảng một chiều (tương tự thì mảng ba chiều là một mảng các phần tử mảng hai chiều).

Ví dụ:

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

Bạn có thể lưu trữ dữ liệu của bảng trên thành mảng 2 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 2 chiều $cars chứa 4 mảng, và mỗi mảng gồm 2 chỉ số: hàng và cột.

Để truy cập đến 1 phần tử của mảng $cars, chúng ta phải chỉ ra 2 chỉ số: 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>";
?>

Ngoài ra có thể sử dụng hai vòng lặp for lồng nhau để lấy về giá trị của các phần tử trong 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>";
    }
?>

Leave a Reply

Your email address will not be published. Required fields are marked *