Menu
CoddyTech

Tạo mảng 2 chiều

Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 27 trên 68.

Mảng đa chiều là một mảng chứa các mảng khác làm phần tử. Loại phổ biến nhất là mảng 2D, bạn có thể hình dung nó như một lưới gồm các hàng và cột, tương tự như bảng tính hoặc bàn cờ.

Tạo mảng 2D trong PHP rất đơn giản. Bạn tạo một mảng mà mỗi phần tử cũng là một mảng:

<?php
$gameBoard = [
    ["", "", ""],
    ["", "", ""],
    ["", "", ""]
];
?>

Lệnh này tạo một mảng 3x3, trong đó mỗi mảng bên trong biểu thị một hàng và mỗi phần tử trong các mảng đó biểu thị một cột. Bạn cũng có thể tạo mảng 2D với các kiểu dữ liệu khác nhau:

<?php
$scores = [
    [85, 92, 78],
    [90, 88, 95],
    [76, 84, 89]
];
?>

PHP cũng cung cấp hàm có sẵn array_fill(), giúp bạn nhanh chóng tạo một mảng chứa một giá trị cụ thể. Hàm này nhận ba đối số: chỉ số bắt đầu, số phần tử và giá trị cần điền:

<?php
// array_fill(start_index, num_elements, value)
$row = array_fill(0, 3, 0); // [0, 0, 0]
?>

Bạn có thể kết hợp array_fill() với chính nó để tạo mảng 2D một cách hiệu quả. Ví dụ, để tạo lưới 3x3 mà mọi ô đều bắt đầu bằng 0:

<?php
$grid = array_fill(0, 3, array_fill(0, 3, 0));
// Kết quả: mảng (array) 3x3, mọi phần tử đều là 0
?>

Mảng đa chiều rất hữu ích khi sắp xếp dữ liệu có cấu trúc như bàn cờ, bảng thông tin hoặc bất kỳ tình huống nào cần biểu diễn dữ liệu dưới dạng lưới. Mảng đa chiều giúp bạn làm việc tự nhiên hơn với các hàng và cột chứa thông tin liên quan.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận ba đầu vào đại diện cho kích thước và giá trị ban đầu của mảng 2D: số hàng, số cột và giá trị dùng để điền vào từng vị trí. Hãy đọc các đầu vào này, tạo một mảng 2D có kích thước đã cho, trong đó mỗi phần tử được đặt thành giá trị đã cung cấp, rồi in mảng bằng print_r().

Định dạng đầu vào:

  • Dòng đầu tiên: Số hàng (số nguyên)
  • Dòng thứ hai: Số cột (số nguyên)
  • Dòng thứ ba: Giá trị ban đầu cho mỗi phần tử (chuỗi)

Đầu ra mong đợi: Mảng 2D đã tạo, được hiển thị bằng print_r()

Tự làm thử

<?php
// Đọc đầu vào
$rows = intval(fgets(STDIN));
$columns = intval(fgets(STDIN));
$value = trim(fgets(STDIN));

// TODO: Viết code bên dưới để tạo mảng hai chiều


// In ra kết quả
print_r($array);
?>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch PHP online