Menu
Coddy logo textTech

Wyszukiwanie kluczy za pomocą 'array_search'

Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 18 z 68.

Podczas gdy in_array() informuje, czy wartość znajduje się w tablicy, czasami musisz dokładnie wiedzieć, gdzie ta wartość się znajduje. Funkcja array_search() wyszukuje określoną wartość w tablicy i zwraca odpowiadający jej klucz lub indeks.

Oto jak to działa:

<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position;  // Wyświetla: 2
?>

Funkcja przyjmuje dwa parametry: wartość, której szukasz, oraz tablicę, w której jej szukasz. Gdy wartość zostanie znaleziona, array_search() zwraca klucz (w przypadku tablic indeksowanych jest to pozycja numeryczna, zaczynająca się od 0).

Istnieje jednak ważna różnica w tym, co jest zwracane. Jeśli wartość zostanie znaleziona, otrzymasz klucz. Jeśli wartość nie zostanie znaleziona, funkcja zwróci false:

<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores);    // Zwraca: 2
$notFound = array_search(100, $scores); // Zwraca: false
?>

Ta funkcja jest szczególnie przydatna, gdy trzeba określić pozycję lub miejsce elementu, na przykład sprawdzić, które miejsce zajmuje gracz w rankingu, albo znaleźć indeks konkretnego elementu do dalszego przetwarzania.

challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa dane wejściowe: tablicę nazw produktów w formacie JSON oraz nazwę produktu do wyszukania. Odczytaj oba dane wejściowe, przekonwertuj ciąg JSON na tablicę, użyj array_search(), aby znaleźć pozycję produktu w tablicy, i wypisz wynik. Jeśli produkt zostanie znaleziony, wypisz jego indeks. Jeśli produktu nie uda się znaleźć, wypisz "Product not found".

Format wejściowy: Dwa wiersze — pierwszy wiersz zawiera tablicę JSON (przykład: ["laptop","mouse","keyboard","monitor"]), drugi wiersz zawiera nazwę produktu do wyszukania

Oczekiwany wynik: Indeks produktu (zaczynając od 0) lub tekst "Product not found", jeśli produktu nie ma w tablicy

Spróbuj swoich sił

<?php
// Wczytaj wejściową tablicę JSON
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);

// Wczytaj nazwę produktu do wyszukania
$searchProduct = trim(fgets(STDIN));

// TODO: Napisz swój kod poniżej
// Użyj array_search(), aby znaleźć pozycję produktu


// Wyświetl wynik
echo $result;
?>
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator PHP online