Menu
Coddy logo textTech

'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.

challenge icon

Sfida

Facile

Riceverai 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: F oppure K (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

?>
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