Truy cập 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 28 trên 68.
Giờ bạn đã biết cách tạo mảng 2D, bước tiếp theo là học cách lấy các giá trị cụ thể từ mảng. Để truy cập phần tử trong mảng 2D, bạn cần hai chỉ số: chỉ số thứ nhất cho hàng và chỉ số thứ hai cho cột, theo cú pháp $array[row][column].
Đây là cách bạn truy cập một phần tử cụ thể trong mảng 2D:
<?php
$products = [
["Laptop", 999.99],
["Mouse", 25.50],
["Keyboard", 75.00]
];
// Truy cập giá của sản phẩm đầu tiên (Laptop)
echo $products[0][1]; // In ra: 999.99
// Truy cập tên của sản phẩm thứ hai (Mouse)
echo $products[1][0]; // In ra: Mouse
?>Chỉ số đầu tiên [0] chọn hàng đầu tiên (mảng laptop), còn chỉ số thứ hai [1] chọn phần tử thứ hai trong hàng đó (giá). Hãy hình dung bạn đang tìm đến một ô cụ thể trong bảng tính bằng cách chỉ định cả hàng lẫn cột.
Hệ thống đánh chỉ số kép này giúp bạn xác định chính xác phần dữ liệu cần lấy từ cấu trúc dạng lưới, khiến mảng 2D trở nên lý tưởng để sắp xếp thông tin liên quan theo hàng và cột.
Thử thách
DễBạn sẽ nhận ba đầu vào: một mảng 2D chứa thông tin học sinh ở định dạng JSON, một chỉ số hàng và một chỉ số cột. Hãy đọc cả ba đầu vào, chuyển chuỗi JSON thành mảng 2D, truy cập phần tử tại chỉ số hàng và chỉ số cột đã chỉ định, rồi in phần tử đó ra.
Mảng 2D biểu diễn danh sách học sinh, trong đó mỗi mảng bên trong chứa: [student_name, age, grade]
Định dạng đầu vào:
- Dòng đầu tiên: Một mảng JSON chứa thông tin học sinh (ví dụ:
[["Alice",16,85],["Bob",17,92],["Charlie",16,78]]) - Dòng thứ hai: Chỉ số hàng (số nguyên)
- Dòng thứ ba: Chỉ số cột (số nguyên)
Đầu ra mong đợi: Phần tử tại vị trí hàng và cột đã chỉ định
Tự làm thử
<?php
// Đọc mảng JSON
$jsonInput = trim(fgets(STDIN));
$students = (array)json_decode($jsonInput, true);
// Đọc chỉ số hàng
$rowIndex = intval(fgets(STDIN));
// Đọc chỉ số cột
$colIndex = intval(fgets(STDIN));
// TODO: Viết code bên dưới để truy cập phần tử tại hàng và cột đã chỉ định
// In kết quả ra
echo $element;
?>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