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.
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 đó:
- Kiểm tra xem
key1có 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 raKey not found. - Kiểm tra xem
key2có 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 raKey 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 foundNếu các đầu vào là {"title": "Manager", "department": "Sales"}, salary và department, thì đầu ra sẽ là:
Key not found
SalesTự 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
?>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