Menu
Coddy logo textTech

Sprawdzanie, czy klucz istnieje

Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 45 z 71.

Podczas pracy z tablicami asocjacyjnymi często trzeba sprawdzić, czy określony klucz istnieje, zanim spróbuje się uzyskać dostęp do jego wartości. Próba uzyskania dostępu do nieistniejącego klucza może powodować błędy, dlatego PHP udostępnia funkcję array_key_exists(), która pozwala najpierw bezpiecznie to sprawdzić.

<?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";
}
?>

Funkcja przyjmuje dwa argumenty: klucz, którego szukasz, oraz tablicę, w której należy go szukać. Zwraca true, jeśli klucz istnieje, a w przeciwnym razie false. Dzięki temu świetnie nadaje się do użycia w instrukcjach warunkowych.

To sprawdzenie jest szczególnie przydatne podczas pracy z danymi, które mogą być niekompletne, takimi jak dane wprowadzone przez użytkownika lub dane ze źródeł zewnętrznych, gdy nie możesz zagwarantować, że wszystkie oczekiwane klucze są obecne.

challenge icon

Wyzwanie

Łatwy

Wczytaj wiersz wejściowy zawierający obiekt JSON reprezentujący dane użytkownika (np. {"username": "john_doe", "email": "john@example.com", "age": 28}).

Następnie wczytaj jeszcze dwa wejścia:

  • Ciąg znaków key1 — pierwszy klucz do sprawdzenia
  • Ciąg znaków key2 — drugi klucz do sprawdzenia

Utwórz tablicę asocjacyjną z wejściowego obiektu JSON, a następnie:

  1. Sprawdź, czy key1 istnieje w tablicy. Jeśli tak, wypisz przypisaną do niego wartość. Jeśli nie, wypisz Key not found.
  2. Sprawdź, czy key2 istnieje w tablicy. Jeśli tak, wypisz przypisaną do niego wartość. Jeśli nie, wypisz Key not found.

Wypisz każdy wynik w osobnym wierszu.

Przykład:

Jeśli wejściami są {"username": "john_doe", "email": "john@example.com", "age": 28}, username i phone, wynikiem powinno być:

john_doe
Key not found

Jeśli wejściami są {"title": "Manager", "department": "Sales"}, salary i department, wynikiem powinno być:

Key not found
Sales

Spróbuj swoich sił

<?php
// Odczytaj dane wejściowe JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// Przekształć JSON w tablicę asocjacyjną
$userData = (array)json_decode($jsonInput, true);

// TODO: Napisz swój kod poniżej
// Sprawdź, czy key1 istnieje, i wypisz wartość lub dokładny tekst z instrukcji

// Sprawdź, czy key2 istnieje, i wypisz wartość lub dokładny tekst z instrukcji

?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator PHP online