Menu
CoddyTech

Kiểm tra khóa có tồn tại

Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 45 trên 71.

Khi làm việc với mảng kết hợp, bạn thường cần kiểm tra xem một khóa cụ thể có tồn tại hay không trước khi truy cập giá trị của nó. Truy cập một khóa không tồn tại có thể gây ra lỗi, vì vậy PHP cung cấp hàm array_key_exists() để kiểm tra trước một cách an toàn.

<?php
$person = [
    "name" => "Alice",
    "age" => 25
];

if (array_key_exists("name", $person)) {
    echo "Name exists!";
}

if (array_key_exists("city", $person)) {
    echo "City exists!";
} else {
    echo "City not found";
}
?>

Hàm nhận hai đối số: khóa bạn đang tìm và mảng cần tìm kiếm. Hàm trả về true nếu khóa tồn tại, và false nếu không. Điều này khiến hàm rất phù hợp để dùng trong các câu lệnh điều kiện.

Phép kiểm tra này đặc biệt hữu ích khi xử lý dữ liệu có thể chưa đầy đủ, như dữ liệu đầu vào của người dùng hoặc dữ liệu từ nguồn bên ngoài, khi bạn không thể đảm bảo rằng mọi khóa dự kiến đều có mặt.

challenge icon

Thử thách

Dễ

Đọc một dòng đầu vào chứa một đối tượng JSON biểu diễn dữ liệu người dùng (ví dụ: {"username": "john_doe", "email": "john@example.com", "age": 28}).

Sau đó đọc thêm hai đầu vào:

  • Một chuỗi key1, khóa đầu tiên cần kiểm tra
  • Một chuỗi key2, khóa thứ hai cần kiểm tra

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

  1. Kiểm tra xem key1 có tồn tại trong mảng hay không. Nếu có, in ra giá trị tương ứng. Nếu không, in ra Key not found.
  2. Kiểm tra xem key2 có tồn tại trong mảng hay không. Nếu có, in ra giá trị tương ứng. Nếu không, in ra Key not found.

In mỗi kết quả trên một dòng riêng.

Ví dụ:

Nếu các đầu vào là {"username": "john_doe", "email": "john@example.com", "age": 28}, username và phone, thì đầu ra sẽ là:

john_doe
Key not found

Nếu các đầu vào là {"title": "Manager", "department": "Sales"}, salary và department, thì đầu ra sẽ là:

Key not found
Sales

Tự làm thử

<?php
// Đọc JSON đầu vào
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// Chuyển JSON thành mảng kết hợp
$userData = (array)json_decode($jsonInput, true);

// TODO: Viết code bên dưới
// Kiểm tra xem key1 có tồn tại không, rồi in ra giá trị hoặc đúng văn bản trong hướng dẫn

// Kiểm tra xem key2 có tồn tại không, rồi in ra giá trị hoặc đúng văn bản trong hướng dẫn

?>
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