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.

Alors que les fonctions intégrées comme strtoupper fonctionnent bien avec array_map(), la véritable puissance réside dans l'utilisation de vos propres fonctions personnalisées. Cela vous permet de créer des transformations spécifiques adaptées à vos besoins exacts.

Pour utiliser une fonction personnalisée avec array_map(), passez simplement le nom de la fonction sous forme de chaîne de caractères pour le premier paramètre. Votre fonction personnalisée doit accepter un paramètre (l'élément actuel du tableau) et retourner 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 de caractères ou toute autre logique au sein de votre fonction personnalisée, ce qui rend array_map() incroyablement polyvalent pour les tâches de transformation de données.

quiz iconTestez-vous

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

quiz iconTestez-vous

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

quiz iconTestez-vous

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

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 ou K pour Kelvin). La première entrée contient les températures sous forme de chaîne de caractères 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 Celsius vers l'unité cible, utilisez array_map() avec votre fonction personnalisée pour transformer toutes les températures, et affichez chaque température convertie sur une ligne distincte, arrondie à 2 décimales.

Formules de conversion :

  • Celsius vers Fahrenheit : (C × 9/5) + 32
  • Celsius vers 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 ou K (exemple : F)

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

Aide-mémoire

Utilisez des fonctions personnalisées avec array_map() en passant le nom de la fonction sous forme de chaîne de caractères. La fonction personnalisée doit accepter un paramètre (l'élément actuel du tableau) et retourner 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 offre un contrôle total sur le traitement des éléments, permettant des calculs complexes, des manipulations de chaînes de caractères ou toute logique personnalisée au sein de votre fonction.

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