Menu
Coddy logo textTech

'array_map' con funciones personalizadas

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 40 de 68.

Si bien las funciones integradas como strtoupper funcionan bien con array_map(), el verdadero potencial reside en el uso de tus propias funciones personalizadas. Esto te permite crear transformaciones específicas adaptadas a tus necesidades exactas.

Para usar una función personalizada con array_map(), simplemente pasa el nombre de la función como una cadena para el primer parámetro. Tu función personalizada debe aceptar un parámetro (el elemento actual del array) y devolver el valor transformado.

<?php
function doubleNumber($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// Resultado: [2, 4, 6, 8, 10]
?>

Este enfoque le brinda un control total sobre cómo se procesa cada elemento. Puede realizar cálculos complejos, manipulaciones de cadenas o cualquier otra lógica dentro de su función personalizada, lo que hace que array_map() sea increíblemente versátil para tareas de transformación de datos.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Recibirás dos entradas: una lista de temperaturas en Celsius separadas por comas y una unidad de destino para la conversión (ya sea F para Fahrenheit o K para Kelvin). La primera entrada contiene las temperaturas como una cadena en el formato 0,10,20,30,100, y la segunda entrada es un solo carácter que indica el tipo de conversión.

Lee ambas entradas, convierte las temperaturas separadas por comas en un array de números, crea una función personalizada que convierta una temperatura Celsius a la unidad de destino, utiliza array_map() con tu función personalizada para transformar todas las temperaturas y muestra cada temperatura convertida en una línea separada, redondeada a 2 decimales.

Fórmulas de conversión:

  • Celsius a Fahrenheit: (C × 9/5) + 32
  • Celsius a Kelvin: C + 273.15

Formato de entrada:

  • Primera línea: Temperaturas en Celsius separadas por comas (ejemplo: 0,10,20,30,100)
  • Segunda línea: Unidad de conversión de destino - ya sea F o K (ejemplo: F)

Salida esperada: Cada temperatura convertida impresa en una línea separada, redondeada a 2 decimales

Hoja de referencia

Usa funciones personalizadas con array_map() pasando el nombre de la función como una cadena. La función personalizada debe aceptar un parámetro (el elemento actual del array) y devolver el valor transformado.

<?php
function doubleNumber($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// Resultado: [2, 4, 6, 8, 10]
?>

Este enfoque proporciona un control total sobre el procesamiento de los elementos, permitiendo cálculos complejos, manipulaciones de cadenas o cualquier lógica personalizada dentro de su función.

Pruébalo tú mismo

<?php
// Leer las temperaturas separadas por comas
$temperatures = fgets(STDIN);

// Leer la unidad de destino (F o K)
$unit = trim(fgets(STDIN));

// Convertir la cadena separada por comas en un array de números
$tempArray = explode(',', trim($temperatures));

// TODO: Escribe tu código a continuación
// Crear una función personalizada para convertir Celsius a la unidad de destino
// Usar array_map() para aplicar la conversión a todas las temperaturas
// Imprimir cada temperatura convertida en una línea separada, redondeada a 2 decimales

?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo