Menu
Coddy logo textTech

Transformación con 'array_map'

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

La función array_map() es una herramienta poderosa que transforma cada elemento de un array aplicando una función de callback a cada uno. A diferencia de las funciones que modifican el array original, array_map() crea y devuelve un array completamente nuevo con los valores transformados.

La sintaxis básica requiere dos parámetros: primero, la función de callback que deseas aplicar, y segundo, el array que deseas transformar. PHP tiene muchas funciones integradas que funcionan perfectamente como callbacks con array_map().

<?php
$names = ["alice", "bob", "charlie"];
$uppercaseNames = array_map("strtoupper", $names);
// Resultado: ["ALICE", "BOB", "CHARLIE"]
?>

En este ejemplo, strtoupper se aplica a cada elemento en el array $names. El array original permanece sin cambios, mientras que $uppercaseNames contiene los resultados transformados. Esto hace que array_map() sea ideal cuando necesitas procesar datos sin perder los valores originales.

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 precios de productos separada por comas y un porcentaje de descuento. La primera entrada contiene los precios como una cadena en el formato 19.99,25.50,12.75,8.00, y la segunda entrada es el porcentaje de descuento como un número (ejemplo: 15).

Lee ambas entradas, convierte los precios separados por comas en un array de números, aplica el porcentaje de descuento a cada precio utilizando array_map() con la función incorporada floatval para la conversión y un cálculo para el descuento, e imprime cada precio con descuento en una línea separada, redondeado a 2 decimales.

Para calcular el precio con descuento: multiplica el precio original por (100 - discount) / 100.

Formato de entrada:

  • Primera línea: Precios de productos separados por comas (ejemplo: 19.99,25.50,12.75,8.00)
  • Segunda línea: Porcentaje de descuento como un número (ejemplo: 15)

Salida esperada: Cada precio con descuento impreso en una línea separada, redondeado a 2 decimales (ejemplo: 16.99, 21.68, 10.84, 6.80)

Hoja de referencia

La función array_map() transforma cada elemento de un array aplicando una función de callback a cada uno. Crea y devuelve un nuevo array con los valores transformados, dejando el array original sin cambios.

Sintaxis básica con una función incorporada:

<?php
$names = ["alice", "bob", "charlie"];
$uppercaseNames = array_map("strtoupper", $names);
// Resultado: ["ALICE", "BOB", "CHARLIE"]
?>

La función toma dos parámetros: la función de callback y el array a transformar. Puedes usar funciones de PHP incorporadas o funciones anónimas como callbacks.

Pruébalo tú mismo

<?php
// Leer la entrada
$prices_input = trim(fgets(STDIN));
$discount = floatval(fgets(STDIN));

// Convertir los precios separados por comas en un array
$prices = explode(',', $prices_input);

// TODO: Escribe tu código a continuación
// Usa array_map() para aplicar el descuento a cada precio


// Mostrar cada precio con descuento en una línea separada

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