Menu
Coddy logo textTech

Chiavi con 'array_search'

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 18 di 68.

Mentre in_array() ti dice se un valore esiste in un array, a volte hai bisogno di sapere esattamente dove si trova quel valore. La funzione array_search() trova un valore specifico in un array e restituisce la chiave o l'indice corrispondente.

Ecco come funziona:

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

La funzione accetta due parametri: il valore che stai cercando e l'array in cui cercarlo. Quando il valore viene trovato, array_search() restituisce la chiave (per gli array indicizzati, questa è la posizione numerica a partire da 0).

Tuttavia, c'è una distinzione importante in ciò che viene restituito. Se il valore viene trovato, ottieni la chiave. Se il valore non viene trovato, la funzione restituisce false:

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

Questa funzione è particolarmente utile quando devi determinare la posizione o la classifica di un elemento, ad esempio per scoprire in quale posizione si trova un giocatore in una classifica o individuare l’indice di un elemento specifico per elaborarlo ulteriormente.

challenge icon

Sfida

Facile

Riceverai due input: un array di nomi di prodotti in formato JSON e il nome di un prodotto da cercare. Leggi entrambi gli input, converti la stringa JSON in un array, usa array_search() per trovare la posizione del prodotto nell'array e stampa il risultato. Se il prodotto viene trovato, stampa la posizione del suo indice. Se il prodotto non viene trovato, stampa "Product not found".

Formato dell'input: Due righe: la prima contiene un array JSON (esempio: ["laptop","mouse","keyboard","monitor"]), la seconda contiene il nome del prodotto da cercare

Output previsto: La posizione dell'indice numerico del prodotto (a partire da 0) oppure il testo "Product not found" se il prodotto non esiste nell'array

Provalo tu

<?php
// Leggi l'array JSON in input
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);

// Leggi il nome del prodotto da cercare
$searchProduct = trim(fgets(STDIN));

// TODO: Scrivi il tuo codice qui sotto
// Usa array_search() per trovare la posizione del prodotto


// Stampa il risultato
echo $result;
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online