Rimuovere con 'array_shift'
Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 13 di 68.
La funzione array_shift() rimuove il primo elemento da un array e restituisce il valore rimosso. È l'opposto di array_unshift(), che aggiunge elementi all'inizio di un array.
Ecco come funziona:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Stampa: Alice
print_r($queue); // Stampa: Array ( [0] => Bob [1] => Charlie )
?>Nota che array_shift() modifica l'array originale e restituisce l'elemento rimosso. Dopo aver rimosso il primo elemento, tutti gli elementi rimanenti si spostano automaticamente per riempire il vuoto: "Bob" passa dall'indice 1 all'indice 0 e "Charlie" passa dall'indice 2 all'indice 1.
Questa reindicizzazione avviene automaticamente, assicurando che l'array mantenga la corretta sequenza numerica. Se usi array_shift() su un array vuoto, restituisce null senza causare un errore.
Questa funzione è particolarmente utile per implementare le code, in cui elabori gli elementi nell'ordine «primo a entrare, primo a uscire», ad esempio gestendo i clienti in fila o elaborando le attività nell'ordine in cui sono state ricevute.
Sfida
FacileRiceverai due input: un array iniziale di clienti in attesa in fila in formato JSON e un numero che indica quanti clienti servire. Leggi entrambi gli input, converti la stringa JSON in un array, usa array_shift() il numero di volte specificato per rimuovere dalla fila i clienti serviti, partendo dall'inizio, e stampa l'array finale usando print_r().
Formato dell'input: Due righe: la prima contiene un array JSON (esempio: ["Alice","Bob","Charlie","Diana"]), la seconda contiene il numero di clienti da servire (un numero)
Output previsto: L'array dopo aver rimosso dalla fila i clienti serviti, partendo dall'inizio, visualizzato usando print_r()
Provalo tu
<?php
// Leggi l'array JSON dei clienti
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);
// Leggi il numero di clienti da servire
$numToServe = intval(fgets(STDIN));
// TODO: Scrivi il tuo codice qui sotto
// Usa array_shift() per rimuovere i clienti dall'inizio della coda
// Visualizza l'array finale
print_r($customers);
?>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