Récapitulatif : Traitement des données
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 45 sur 68.
Défi
FacileVous recevrez trois entrées : une liste de noms d'employés séparés par des virgules, une liste de leurs heures de travail correspondantes pour la semaine séparées par des virgules, et un seuil d'heures minimales. La première entrée contient les noms au format Alice,Bob,Charlie,Diana,Eve, la deuxième entrée contient les heures sous forme de nombres au format 45,32,50,28,40, et la troisième entrée est le seuil d'heures minimales sous forme de nombre (exemple : 35).
Lisez les trois entrées et convertissez-les en tableaux appropriés. Créez un tableau associatif combiné où les noms des employés sont les clés et leurs heures de travail sont les valeurs. Effectuez ensuite les opérations suivantes en utilisant des fonctions de tableau d'ordre supérieur :
- Utilisez
array_filter()avec une fonction de rappel personnalisée pour ne conserver que les employés ayant travaillé au moins le seuil d'heures minimales - Utilisez
array_map()avec une fonction de rappel personnalisée pour calculer la rémunération des heures supplémentaires pour les employés filtrés (les heures supplémentaires sont toutes les heures au-delà de 40, payées à 1,5 fois le taux de $25 par heure pour les heures régulières) - Utilisez
array_reduce()avec une fonction de rappel personnalisée pour calculer le montant total des heures supplémentaires pour tous les employés filtrés
Affichez les résultats au format suivant :
- Tout d'abord, affichez le nom de chaque employé qualifié et sa rémunération des heures supplémentaires sur des lignes séparées au format
Name: $Amount(arrondi à 2 décimales) - Enfin, affichez le montant total des heures supplémentaires au format
Total: $Amount(arrondi à 2 décimales)
Détails du calcul :
- Heures régulières (jusqu'à 40) : $25 par heure
- Heures supplémentaires (au-delà de 40) : $37.50 par heure (taux de 1,5x)
- Si un employé a travaillé 40 heures ou moins, sa rémunération des heures supplémentaires est de $0.00
Format d'entrée :
- Première ligne : Noms des employés séparés par des virgules (exemple :
Alice,Bob,Charlie,Diana,Eve) - Deuxième ligne : Heures de travail séparées par des virgules sous forme de nombres (exemple :
45,32,50,28,40) - Troisième ligne : Seuil d'heures minimales sous forme de nombre (exemple :
35)
Sortie attendue : Chaque employé qualifié avec sa rémunération des heures supplémentaires sur des lignes séparées, suivie du montant total des heures supplémentaires, tous les montants étant formatés à 2 décimales
Essayez vous-même
<?php
// Lire les entrées
$names = explode(',', trim(fgets(STDIN)));
$hours = explode(',', trim(fgets(STDIN)));
$minHours = intval(trim(fgets(STDIN)));
// Convertir les heures en entiers
$hours = array_map('intval', $hours);
// Créer un tableau associatif combinant les noms et les heures
$employees = array_combine($names, $hours);
// TODO: Écrivez votre code ci-dessous
// 1. Utiliser array_filter() pour garder les employés ayant travaillé au moins le nombre d'heures minimum
// 2. Utiliser array_map() pour calculer la rémunération des heures supplémentaires pour les employés filtrés
// 3. Utiliser array_reduce() pour calculer le montant total des heures supplémentaires
// Afficher les résultats
// Afficher la rémunération des heures supplémentaires de chaque employé qualifié
// Afficher le montant total des heures supplémentaires
?>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