Thêm điểm cho học sinh
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 35 trên 68.
Thử thách
DễBạn sẽ nhận ba đầu vào: một đối tượng JSON đại diện cho sổ điểm hiện có của học sinh, tên của một học sinh và điểm cần thêm. Sổ điểm dùng tên học sinh làm khóa, mỗi học sinh có "id" và mảng "grades". Đầu vào thứ hai là tên học sinh, còn đầu vào thứ ba là điểm cần thêm (dưới dạng số).
Đọc cả ba đầu vào, chuyển chuỗi JSON thành một mảng sổ điểm, tìm học sinh được chỉ định, thêm điểm mới vào mảng điểm của học sinh đó và in sổ điểm đã cập nhật bằng print_r().
Định dạng đầu vào:
- Dòng đầu tiên: Một đối tượng JSON đại diện cho sổ điểm hiện có (ví dụ:
{"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}}) - Dòng thứ hai: Tên học sinh (ví dụ:
Alice) - Dòng thứ ba: Điểm cần thêm (ví dụ:
88)
Đầu ra mong đợi: Mảng sổ điểm đã cập nhật, được hiển thị bằng print_r(), với điểm mới được thêm vào mảng điểm của học sinh được chỉ định
Tự làm thử
<?php
// Đọc chuỗi (string) JSON của sổ điểm
$gradebookJson = fgets(STDIN);
// Đọc tên học sinh
$studentName = trim(fgets(STDIN));
// Đọc điểm cần thêm
$grade = intval(fgets(STDIN));
// Chuyển JSON thành mảng (array)
$gradebook = (array)json_decode($gradebookJson, true);
// TODO: Viết code bên dưới
// Tìm học sinh và thêm điểm mới vào mảng điểm của học sinh đó
// In ra sổ điểm đã cập nhật
print_r($gradebook);
?>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át5Sổ điểm học sinh
Thiết lập dự án: cấu trúc dữ liệuThêm học sinh mớiThêm điểm cho học sinhTính điểm trung bình của học sinhTìm học sinh có điểm cao nhấtTạo bảng điểm3Sắ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