Menu
Coddy logo textTech

Transformer avec 'array_map'

Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 39 sur 68.

La fonction array_map() est un outil puissant qui transforme chaque élément d'un tableau en appliquant une fonction de rappel à chacun d'eux. Contrairement aux fonctions qui modifient le tableau original, array_map() crée et retourne un tout nouveau tableau avec les valeurs transformées.

La syntaxe de base nécessite deux paramètres : premièrement, la fonction de rappel que vous souhaitez appliquer, et deuxièmement, le tableau que vous souhaitez transformer. PHP possède de nombreuses fonctions intégrées qui fonctionnent parfaitement comme rappels avec array_map().

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

Dans cet exemple, strtoupper est appliqué à chaque élément du tableau $names. Le tableau original reste inchangé, tandis que $uppercaseNames contient les résultats transformés. Cela rend array_map() idéal lorsque vous devez traiter des données sans perdre les valeurs d'origine.

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 prix de produits séparés par des virgules et un pourcentage de remise. La première entrée contient les prix sous forme de chaîne de caractères au format 19.99,25.50,12.75,8.00, et la seconde entrée est le pourcentage de remise sous forme de nombre (exemple : 15).

Lisez les deux entrées, convertissez les prix séparés par des virgules en un tableau de nombres, appliquez le pourcentage de remise à chaque prix en utilisant array_map() avec la fonction intégrée floatval pour la conversion et un calcul pour la remise, et affichez chaque prix remisé sur une ligne distincte, arrondi à 2 décimales.

Pour calculer le prix remisé : multipliez le prix d'origine par (100 - discount) / 100.

Format d'entrée :

  • Première ligne : Prix des produits séparés par des virgules (exemple : 19.99,25.50,12.75,8.00)
  • Deuxième ligne : Pourcentage de remise sous forme de nombre (exemple : 15)

Sortie attendue : Chaque prix remisé affiché sur une ligne distincte, arrondi à 2 décimales (exemple : 16.99, 21.68, 10.84, 6.80)

Aide-mémoire

La fonction array_map() transforme chaque élément d'un tableau en lui appliquant une fonction de rappel (callback). Elle crée et retourne un nouveau tableau contenant les valeurs transformées, laissant le tableau original inchangé.

Syntaxe de base avec une fonction intégrée :

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

La fonction prend deux paramètres : la fonction de rappel et le tableau à transformer. Vous pouvez utiliser des fonctions PHP intégrées ou des fonctions anonymes comme rappels.

Essayez vous-même

<?php
// Lire l'entrée
$prices_input = trim(fgets(STDIN));
$discount = floatval(fgets(STDIN));

// Convertir les prix séparés par des virgules en tableau
$prices = explode(',', $prices_input);

// TODO: Écrivez votre code ci-dessous
// Utilisez array_map() pour appliquer la remise à chaque prix


// Afficher chaque prix remisé sur une ligne distincte

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