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.
Sfida
FacileRiceverai 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;
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Funzioni avanzate
Funzioni anonimeClosure e 'use'Funzioni frecciaFunzioni callbackUso di 'call_user_func'Funzioni variabiliPassaggio per riferimentoFunzioni ricorsiveRiepilogo: carrellata di funzioni4Array multidimensionali
Creare un array 2DAccedere agli elementi di un array 2DModificare gli elementi di un array 2DIterare con cicli annidatiArray associativi 2DRipasso: esercizio con una griglia semplice2Manipolazioni avanzate degli array
Aggiungere con 'array_push'Rimuovere con 'array_pop'Aggiungere con 'array_unshift'Rimuovere con 'array_shift'Unire array indicizzatiUnire array associativiEstrarre con 'array_slice'Valori con 'in_array'Chiavi con 'array_search'Riepilogo: esercizio playlist3Ordinare gli array
Ordina gli array indicizzati in ordine crescenteOrdina gli array indicizzati in ordine decrescenteOrdina gli array associativi per valoreOrdina gli array associativi per chiaveOrdinamento naturaleOrdinamento personalizzato con 'usort'Ripasso: ordinamento della classificaEsercitati da solo: Compilatore PHP online