PHP fonction MAX
Fermé
maxime89
-
Modifié par jordane45 le 24/10/2016 à 15:14
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 25 oct. 2016 à 09:44
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 25 oct. 2016 à 09:44
A voir également:
- PHP fonction MAX
- I14 pro max - Guide
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- 6play max - Guide
- Fonction somme excel - Guide
2 réponses
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
24 oct. 2016 à 15:29
24 oct. 2016 à 15:29
Bonjour,
La fonction php MAX s'applique sur un ARRAY
https://www.php.net/manual/fr/function.max.php
Il faut donc que tu stockes les valeurs saisies par ton utilisateur dans un array.
Tu peux aussi, par précaution, forcer leur type en nombre (via FLOAT ou intval )
Un truc du genre :
La fonction php MAX s'applique sur un ARRAY
https://www.php.net/manual/fr/function.max.php
Il faut donc que tu stockes les valeurs saisies par ton utilisateur dans un array.
Tu peux aussi, par précaution, forcer leur type en nombre (via FLOAT ou intval )
Un truc du genre :
//Affichage des erreurs PHP error_reporting(E_ALL); require_once "lireClavier.php"; // Tableau de sorti $arrNombres = array(); // Lit les commandes de l'utilisateur for ($i=0; $i < 10; $i++) { $line = readline("entrez un nombre : "); $arrNombres[] = intval($line); } echo "<br><br>la valeur max est :"; echo MAX($arrNombres);
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
25 oct. 2016 à 09:44
25 oct. 2016 à 09:44
Bonjour,
Pour compléter ce que dit Jordane (toujours pertinente), je voudrais quand même pointer du doigt une erreur de conception de ton code, indépendamment de l'utilisation de max() : à chaque itération de la boucle, tu écrases $nombre en y mettant la nouvelle valeur. Tu perds donc toute information passée.
Une autre solution serait d'effectuer la comparaison à chaque itération, et de garder la plus grande valeur en mémoire, en faisant, dans la boucle :
En termes de temps de calcul ce sera relativement équivalent (en O(n)), par contre la consommation mémoire sera moindre pour un grand nombre d'itérations. Inconvénient, si tu veux faire d'autres calculs sur l'ensemble des nombres, tu ne les as plus.
Xavier
Pour compléter ce que dit Jordane (toujours pertinente), je voudrais quand même pointer du doigt une erreur de conception de ton code, indépendamment de l'utilisation de max() : à chaque itération de la boucle, tu écrases $nombre en y mettant la nouvelle valeur. Tu perds donc toute information passée.
Une autre solution serait d'effectuer la comparaison à chaque itération, et de garder la plus grande valeur en mémoire, en faisant, dans la boucle :
$valeurMax = max($valeurMax, $nombre);
En termes de temps de calcul ce sera relativement équivalent (en O(n)), par contre la consommation mémoire sera moindre pour un grand nombre d'itérations. Inconvénient, si tu veux faire d'autres calculs sur l'ensemble des nombres, tu ne les as plus.
Xavier