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.

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)

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