Menu
Coddy logo textTech

'array_map' avec une fonction personnalisée

Fait partie de la section Logique & Flux du Journey PHP de Coddy. Leçon 40 sur 68.

Bien que les fonctions intégrées comme strtoupper fonctionnent bien avec array_map(), la véritable puissance vient de l’utilisation de vos propres fonctions personnalisées. Cela vous permet de créer des transformations spécifiques adaptées exactement à vos besoins.

Pour utiliser une fonction personnalisée avec array_map(), transmettez simplement le nom de la fonction sous forme de chaîne pour le premier paramètre. Votre fonction personnalisée doit accepter un paramètre (l’élément actuel du tableau) et renvoyer la valeur transformée.

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

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

Cette approche vous donne un contrôle total sur la manière dont chaque élément est traité. Vous pouvez effectuer des calculs complexes, des manipulations de chaînes ou toute autre logique au sein de votre fonction personnalisée, ce qui rend array_map() incroyablement polyvalent pour les tâches de transformation des données.

challenge icon

Défi

Facile

Vous recevrez deux entrées : une liste de températures en Celsius séparées par des virgules et une unité cible pour la conversion (soit F pour Fahrenheit, soit K pour Kelvin). La première entrée contient les températures sous forme de chaîne au format 0,10,20,30,100, et la seconde entrée est un seul caractère indiquant le type de conversion.

Lisez les deux entrées, convertissez les températures séparées par des virgules en un tableau de nombres, créez une fonction personnalisée qui convertit une température en Celsius vers l’unité cible, utilisez array_map() avec votre fonction personnalisée pour transformer toutes les températures, puis affichez chaque température convertie sur une ligne distincte, arrondie à 2 décimales.

Formules de conversion :

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

Format d’entrée :

  • Première ligne : températures en Celsius séparées par des virgules (exemple : 0,10,20,30,100)
  • Deuxième ligne : unité de conversion cible — soit F, soit K (exemple : F)

Résultat attendu : chaque température convertie est affichée sur une ligne distincte, arrondie à 2 décimales

Essayez vous-même

<?php
// Lire les températures séparées par des virgules
$temperatures = fgets(STDIN);

// Lire l'unité cible (F ou K)
$unit = trim(fgets(STDIN));

// Convertir la chaîne séparée par des virgules en un tableau de nombres
$tempArray = explode(',', trim($temperatures));

// TODO: Écrivez votre code ci-dessous
// Créer une fonction personnalisée pour convertir les Celsius vers l'unité cible
// Utiliser array_map() pour appliquer la conversion à toutes les températures
// Afficher chaque température convertie sur une ligne séparée, arrondie à 2 décimales

?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur PHP en ligne