Menu
Coddy logo textTech

'array_map' com Funções Personalizadas

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 40 de 68.

Embora funções nativas como strtoupper funcionem bem com array_map(), o verdadeiro poder vem do uso de suas próprias funções personalizadas. Isso permite que você crie transformações específicas adaptadas às suas necessidades exatas.

Para usar uma função personalizada com array_map(), basta passar o nome da função como uma string para o primeiro parâmetro. Sua função personalizada deve aceitar um parâmetro (o elemento atual do array) e retornar o 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]
?>

Esta abordagem oferece controle total sobre como cada elemento é processado. Você pode realizar cálculos complexos, manipulações de strings ou qualquer outra lógica dentro de sua função personalizada, tornando o array_map() incrivelmente versátil para tarefas de transformação de dados.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

challenge icon

Desafio

Fácil

Você receberá duas entradas: uma lista de temperaturas em Celsius separadas por vírgulas e uma unidade de destino para a conversão (seja F para Fahrenheit ou K para Kelvin). A primeira entrada contém as temperaturas como uma string no formato 0,10,20,30,100, e a segunda entrada é um único caractere indicando o tipo de conversão.

Leia ambas as entradas, converta as temperaturas separadas por vírgulas em um array de números, crie uma função personalizada que converta uma temperatura em Celsius para a unidade de destino, use array_map() com sua função personalizada para transformar todas as temperaturas e imprima cada temperatura convertida em uma linha separada, arredondada para 2 casas decimais.

Fórmulas de conversão:

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

Formato de entrada:

  • Primeira linha: Temperaturas em Celsius separadas por vírgulas (exemplo: 0,10,20,30,100)
  • Segunda linha: Unidade de conversão de destino - seja F ou K (exemplo: F)

Saída esperada: Cada temperatura convertida impressa em uma linha separada, arredondada para 2 casas decimais

Folha de consulta

Use funções personalizadas com array_map() passando o nome da função como uma string. A função personalizada deve aceitar um parâmetro (o elemento atual do array) e retornar o 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]
?>

Esta abordagem oferece controle total sobre o processamento dos elementos, permitindo cálculos complexos, manipulações de strings ou qualquer lógica personalizada dentro da sua função.

Experimente você mesmo

<?php
// Lê as temperaturas separadas por vírgula
$temperatures = fgets(STDIN);

// Lê a unidade de destino (F ou K)
$unit = trim(fgets(STDIN));

// Converte a string separada por vírgulas em um array de números
$tempArray = explode(',', trim($temperatures));

// TODO: Escreva seu código abaixo
// Crie uma função personalizada para converter Celsius para a unidade de destino
// Use array_map() para aplicar a conversão a todas as temperaturas
// Imprima cada temperatura convertida em uma linha separada, arredondada para 2 casas decimais

?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo