Sửa phần tử theo chỉ số
Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 37 trên 71.
Bạn đã học cách truy cập các phần tử trong mảng bằng chỉ số. Giờ hãy cùng tìm hiểu cách thay đổi các phần tử đó. Để sửa một phần tử trong mảng, bạn dùng cùng cú pháp dấu ngoặc vuông, nhưng thêm phép gán.
<?php
$fruits = ["Apple", "Banana", "Cherry"];
$fruits[1] = "Blueberry";
echo $fruits[1]; // Blueberry
?>Ở đây, chúng ta đã thay "Banana" ở chỉ số 1 bằng "Blueberry". Giá trị ban đầu đã mất: mảng không lưu lại lịch sử thay đổi.
Bạn có thể sửa đổi bất kỳ phần tử nào nếu biết chỉ số của nó:
<?php
$scores = [85, 90, 78];
$scores[0] = 95; // Cập nhật điểm đầu tiên
$scores[2] = 82; // Cập nhật điểm cuối cùng
echo $scores[0]; // 95
echo $scores[2]; // 82
?>Điều này hữu ích khi bạn cần cập nhật dữ liệu trong danh sách, chẳng hạn như sửa lỗi chính tả, cập nhật giá hoặc thay đổi trạng thái của người dùng. Chỉ số cho PHP biết chính xác phần tử nào cần thay thế, còn các phần tử khác vẫn giữ nguyên.
Thử thách
DễĐọc một dòng đầu vào chứa các giá trị được phân tách bằng dấu phẩy, đại diện cho danh sách màu (ví dụ: Red,Green,Blue,Yellow).
Sau đó đọc thêm ba giá trị đầu vào:
- Một số nguyên
index1đại diện cho chỉ số đầu tiên cần sửa đổi - Một chuỗi
newValue1đại diện cho giá trị mới tại chỉ số đó - Một số nguyên
index2đại diện cho chỉ số thứ hai cần sửa đổi
Tạo một mảng từ dữ liệu đầu vào được phân tách bằng dấu phẩy, sau đó:
- Sửa đổi phần tử tại
index1thànhnewValue1 - Sửa đổi phần tử tại
index2thànhPurple
In các phần tử của mảng đã sửa đổi trên các dòng riêng biệt, theo thứ tự từ chỉ số 0 đến chỉ số cuối cùng.
Ví dụ:
Nếu dữ liệu đầu vào là Red,Green,Blue,Yellow, 0, Orange và 2, đầu ra sẽ là:
Orange
Green
Purple
YellowNếu dữ liệu đầu vào là Apple,Banana,Cherry,Mango,Kiwi, 1, Grape và 4, đầu ra sẽ là:
Apple
Grape
Cherry
Mango
PurpleTự làm thử
<?php
// Đọc các màu phân tách bằng dấu phẩy
$colorsInput = trim(fgets(STDIN));
$colors = explode(',', $colorsInput);
// Đọc các đầu vào để thay đổi
$index1 = intval(trim(fgets(STDIN)));
$newValue1 = trim(fgets(STDIN));
$index2 = intval(trim(fgets(STDIN)));
// TODO: Viết code của bạn tại đây
// 1. Đổi phần tử tại chỉ số index1 thành newValue1
// 2. Đổi phần tử tại chỉ số index2 thành đúng đoạn văn bản trong hướng dẫn
// In mỗi phần tử trên một dòng riêng
foreach ($colors as $color) {
echo $color . "\n";
}
?>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 Kiến thức cơ bản
4Toán tử so sánh và logic
Toán tử so sánhBằng nhau và đồng nhấtToán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giản2Biến và kiểu dữ liệu
SốChuỗi và dấu ngoặc képGiá trị BooleanQuy ước đặt tênÔn tập: khởi tạo biếnBiến rỗngNối chuỗiNhận đầu vào từ người dùngChuyển đổi sang kiểu dữ liệu khác5Logic điều kiện
Câu lệnh ifIf và elseToán tử ba ngôiToán tử kết hợp nullCâu lệnh switchÔn tập: đưa ra quyết định3Các toán tử cơ bản
Toán tử số họcToán tử chia lấy dưToán tử lũy thừaPhép gán kết hợpTăng/giảmThứ tự ưu tiên của toán tửÔn tập: phép tính đơn giảnToán tử chuỗi6Mảng phần 1: Có chỉ số
Giới thiệu về mảngTạo mảng có chỉ sốTruy cập phần tử theo chỉ sốSửa phần tử theo chỉ sốKích thước mảng với CountThêm phần tử vào mảngÔn tập: Quản lý danh sách đơn giảnTự luyện tập: Trình biên dịch PHP online