Thay đổi giá trị bằng khóa
Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 43 trên 71.
Cũng như bạn đã học cách sửa đổi các phần tử của mảng được đánh chỉ số dựa trên vị trí của chúng, bạn có thể cập nhật giá trị trong mảng kết hợp bằng khóa. Cú pháp giống hệt: gán giá trị mới cho một khóa đã có.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Khi gán giá trị cho một khóa đã tồn tại, PHP chỉ cần thay giá trị cũ bằng giá trị mới. Khóa đó vẫn giữ nguyên, chỉ có giá trị liên kết với nó được cập nhật.
Điều này hữu ích khi dữ liệu cần thay đổi theo thời gian. Ví dụ: cập nhật trạng thái của người dùng, thay đổi giá sản phẩm hoặc sửa thông tin đã nhập sai. Khóa đóng vai trò là điểm tham chiếu ổn định, còn giá trị có thể được chỉnh sửa khi cần.
Thử thách
DễĐọc một dòng đầu vào chứa đối tượng JSON biểu thị thông tin của một sản phẩm (ví dụ: {"name": "Laptop", "price": 999, "stock": 50}).
Sau đó đọc thêm bốn đầu vào:
- Một chuỗi
key1: khóa đầu tiên cần cập nhật - Một chuỗi
value1: giá trị mới chokey1 - Một chuỗi
key2: khóa thứ hai cần cập nhật - Một chuỗi
value2: giá trị mới chokey2
Tạo một mảng kết hợp từ đầu vào JSON, sau đó:
- Cập nhật giá trị ứng với
key1thànhvalue1 - Cập nhật giá trị ứng với
key2thànhvalue2 - In ra giá trị đã cập nhật tại
key1 - In ra giá trị đã cập nhật tại
key2
In mỗi kết quả trên một dòng riêng.
Ví dụ:
Nếu đầu vào là {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock và 45, đầu ra sẽ là:
1099
45Nếu đầu vào là {"city": "Paris", "country": "France", "population": 2000000}, city, London, country và UK, đầu ra sẽ là:
London
UKTự làm thử
<?php
// Đọc JSON đầu vào
$jsonInput = trim(fgets(STDIN));
// Đọc các khóa và giá trị cần cập nhật
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// Chuyển JSON thành mảng kết hợp
$product = (array)json_decode($jsonInput, true);
// TODO: Viết code của bạn bên dưới
// 1. Cập nhật giá trị của khóa key1 thành value1
// 2. Cập nhật giá trị của khóa key2 thành value2
// 3. In ra các giá trị sau khi cập nhật
?>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ản7Mảng, phần 2: Mảng kết hợp
Giới thiệu về mảng kết hợpTruy cập giá trị bằng khóaThay đổi giá trị bằng khóaThêm cặp khóa-giá trị mớiKiểm tra khóa có tồn tạiÔn tập: Kho dữ liệu khóa-giá trị2Biế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ỗiTự luyện tập: Trình biên dịch PHP online