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.
Wyzwanie
ŁatwyOtrzymasz 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;
?>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
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wynikówPoćwicz samodzielnie: Kompilator PHP online