'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.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileVous 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
FouK(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
?>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
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement6Fonctions de tableau d'ordre supérieur
Transformer avec 'array_map''array_map' avec une fonction personnaliséeFiltrer avec 'array_filter''array_filter' avec une fonction personnaliséeRéduire avec 'array_reduce'Parcourir avec 'array_walk'Récapitulatif : Traitement des données