Menu
CoddyTech

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.

challenge icon

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 cho key1
  • Một chuỗi key2: khóa thứ hai cần cập nhật
  • Một chuỗi value2: giá trị mới cho key2

Tạo một mảng kết hợp từ đầu vào JSON, sau đó:

  1. Cập nhật giá trị ứng với key1 thành value1
  2. Cập nhật giá trị ứng với key2 thành value2
  3. In ra giá trị đã cập nhật tại key1
  4. 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
45

Nếu đầu vào là {"city": "Paris", "country": "France", "population": 2000000}, city, London, country và UK, đầu ra sẽ là:

London
UK

Tự 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

?>
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch PHP online