Chỉnh sửa phần tử trong 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 29 trên 68.
Khi đã biết cách truy cập các phần tử trong mảng 2D, bước tiếp theo là học cách thay đổi giá trị của chúng. Để sửa đổi các phần tử trong mảng 2D, bạn dùng cùng cú pháp đánh chỉ số kép như khi truy cập, nhưng thêm toán tử gán để đặt giá trị mới.
Sau đây là cách bạn thay đổi một phần tử cụ thể trong mảng 2D:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
// Đổi ô ở giữa thành 'X'
$gameBoard[1][1] = "X";
// Đổi ô ở góc trên bên trái thành 'O'
$gameBoard[0][0] = "O";
?>Cú pháp $gameBoard[1][1] = "X" nhắm đến hàng 1, cột 1 (ô chính giữa của lưới 3x3) và gán giá trị "X" cho vị trí đó. Câu lệnh này sửa đổi trực tiếp mảng ban đầu, thay thế giá trị trước đó ở vị trí đó.
Kỹ thuật chỉnh sửa này rất cần thiết để cập nhật trạng thái trò chơi, thay đổi dữ liệu trong bảng hoặc xử lý mọi tình huống cần thay đổi các vị trí cụ thể trong cấu trúc dữ liệu dạng lưới. Khả năng xác định chính xác vị trí và cập nhật chúng khiến mảng 2 chiều trở nên lý tưởng để biểu diễn thông tin động, có thể thay đổi và được sắp xếp theo hàng, cột.
Thử thách
DễBạn sẽ nhận bốn đầu vào: một mảng (array) hai chiều biểu diễn sơ đồ chỗ ngồi ở định dạng JSON, chỉ số hàng, chỉ số cột và tên hành khách mới. Hãy đọc cả bốn đầu vào, chuyển chuỗi JSON thành mảng hai chiều, sửa phần tử tại hàng và cột được chỉ định bằng cách gán tên hành khách mới, rồi in ra mảng hai chiều đã cập nhật bằng print_r().
Mảng hai chiều biểu diễn sơ đồ chỗ ngồi, trong đó mỗi phần tử chứa tên một hành khách hoặc một chuỗi rỗng nếu ghế còn trống.
Định dạng đầu vào:
- Dòng thứ nhất: Một mảng JSON biểu diễn sơ đồ chỗ ngồi (ví dụ:
[["Alice","Bob",""],["","Charlie","Diana"],["","",""]]) - Dòng thứ hai: Chỉ số hàng (số nguyên)
- Dòng thứ ba: Chỉ số cột (số nguyên)
- Dòng thứ tư: Tên hành khách mới (chuỗi)
Đầu ra mong đợi: Mảng hai chiều đã sửa đổi, được hiển thị bằng print_r()
Tự làm thử
<?php
// Đọc dữ liệu đầu vào
$json_input = trim(fgets(STDIN));
$row_index = intval(fgets(STDIN));
$col_index = intval(fgets(STDIN));
$new_passenger = trim(fgets(STDIN));
// Chuyển JSON thành mảng hai chiều
$seating_chart = (array)json_decode($json_input, true);
// TODO: Viết code bên dưới để sửa sơ đồ chỗ ngồi
// In ra mảng đã sửa
print_r($seating_chart);
?>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
1Hàm nâng cao
Hàm ẩn danhClosure và 'use'Hàm mũi tênHàm callbackDùng 'call_user_func'Hàm biếnTruyền tham chiếuHàm đệ quyÔn tập: tổng hợp về hàm4Mảng đa chiều
Tạo mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuChỉnh sửa phần tử trong mảng 2 chiềuLặp qua các vòng lặp lồng nhauMảng kết hợp 2 chiềuÔn tập: bài tập lưới đơn giản2Thao tác nâng cao với mảng
Thêm phần tử bằng 'array_push'Xóa phần tử bằng 'array_pop'Thêm phần tử vào đầu mảng bằng 'array_unshift'Xóa phần tử đầu mảng bằng 'array_shift'Gộp các mảng được đánh chỉ sốGộp các mảng kết hợpTrích xuất phần tử bằng 'array_slice'Kiểm tra giá trị bằng 'in_array'Tìm khóa bằng 'array_search'Ôn tập: bài tập về danh sách phát3Sắp xếp mảng
Sắp xếp mảng có chỉ số tăng dầnSắp xếp mảng có chỉ số giảm dầnSắp xếp mảng kết hợp theo giá trịSắp xếp mảng kết hợp theo khóaSắp xếp theo thứ tự tự nhiênSắp xếp tùy chỉnh bằng 'usort'Ôn tập: Sắp xếp bảng xếp hạngTự luyện tập: Trình biên dịch PHP online