'array_map' con una funzione personalizzata
Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 40 di 68.
Mentre le funzioni integrate come strtoupper funzionano bene con array_map(), il vero potenziale si sprigiona usando le tue funzioni personalizzate. Questo ti consente di creare trasformazioni specifiche, su misura per le tue esigenze.
Per usare una funzione personalizzata con array_map(), passa semplicemente il nome della funzione come stringa per il primo parametro. La tua funzione personalizzata dovrebbe accettare un parametro (l'elemento corrente dell'array) e restituire il valore trasformato.
<?php
function doubleNumber($num) {
return $num * 2;
}
$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// Risultato: [2, 4, 6, 8, 10]
?>Questo approccio ti dà il controllo completo su come viene elaborato ogni elemento. Puoi eseguire calcoli complessi, manipolazioni di stringhe o qualsiasi altra logica all'interno della tua funzione personalizzata, rendendo array_map() incredibilmente versatile per le attività di trasformazione dei dati.
Sfida
FacileRiceverai due input: un elenco di temperature in Celsius separate da virgole e un'unità di destinazione per la conversione (sia F per Fahrenheit sia K per Kelvin). Il primo input contiene le temperature come stringa nel formato 0,10,20,30,100, mentre il secondo input è un singolo carattere che indica il tipo di conversione.
Leggi entrambi gli input, converti le temperature separate da virgole in un array di numeri, crea una funzione personalizzata che converta una temperatura in Celsius nell'unità di destinazione, usa array_map() con la tua funzione personalizzata per trasformare tutte le temperature e stampa ogni temperatura convertita su una riga separata, arrotondata a 2 cifre decimali.
Formule di conversione:
- Da Celsius a Fahrenheit:
(C × 9/5) + 32 - Da Celsius a Kelvin:
C + 273.15
Formato dell'input:
- Prima riga: temperature in Celsius separate da virgole (esempio:
0,10,20,30,100) - Seconda riga: unità di conversione di destinazione:
FoppureK(esempio:F)
Output previsto: ogni temperatura convertita stampata su una riga separata, arrotondata a 2 cifre decimali
Provalo tu
<?php
// Leggi le temperature separate da virgole
$temperatures = fgets(STDIN);
// Leggi l'unità di destinazione (F o K)
$unit = trim(fgets(STDIN));
// Converti la stringa separata da virgole in un array di numeri
$tempArray = explode(',', trim($temperatures));
// TODO: Scrivi il tuo codice qui sotto
// Crea una funzione personalizzata per convertire i gradi Celsius nell'unità di destinazione
// Usa array_map() per applicare la conversione a tutte le temperature
// Stampa ogni temperatura convertita su una riga separata, arrotondata a 2 cifre decimali
?>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 classifica6Funzioni di ordine superiore sugli array
Trasformare con 'array_map''array_map' con una funzione personalizzataFiltrare con 'array_filter''array_filter' con una funzione personalizzataRidurre con 'array_reduce'Iterare con 'array_walk'Riepilogo: elaborazione dei datiEsercitati da solo: Compilatore PHP online