Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 18h28   #1
Membre à l'essai
 
yoni
Inscription : février 2010
Messages : 110
Détails du profil
Informations personnelles :
Nom : yoni

Informations forums :
Inscription : février 2010
Messages : 110
Points : 22
Points : 22
Par défaut valeur minimal

Bonsoir, voila j'essaie de trouver le code me permettant de trouver la valeur minimal d'un tableau sans passer par une fonction min()

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
 
J'ai pensais que: Si la clef est supérieur 
aux autres clef du tableau ayant pour indice $i cad si 
$e est supérieur à $e[0] ensuite que $e est 
supérieur à $i[1] ... */
 
         if ($e > $e[$i++]
         echo $e est le plus grande
}
?>
Je pense que mon raisonement est un peu prés bon mais la mise en code est

Merci
boubz013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 18h42   #2
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Code :
1
2
3
4
5
6
7
 
$max = $ar_tab[0];
for($i=1 ; $i < count($ar_tab); $i++)
{
      if($ar_tab[$i] > $max)
             $max = $ar_tab[$i];
}
m4riachi est actuellement connecté   Envoyer un message privé Réponse avec citation 01
Vieux 23/12/2010, 18h45   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
ça sent l'énoncé de cours de programmation à plein nez

La solution noobz:
Code :
1
2
3
4
5
6
7
 
$max = false;
foreach ($tab as $key => $value)
{
    $max = ($max === false || $value >= $max) ? $value : $max;
}
echo "$max est la plus grande valeur du tableau";
Un solution plus propre (ça respecte ton énoncé: ne pas utiliser max)
Code :
1
2
3
4
 
sort($tab, SORT_NUMERIC);
$tab = array_reverse($tab);
echo array_shift($tab);
gnark gnark gnark.
Vu que la fonction sort est un qsort réccursif, sa complexité algorithmique est moins grande qu'une boucle itérative: donc tu es gagnant.

Note: au passage, il est TOUJOURS plus rapide d'utiliser des fonctions natives de PHP que des boucles. Vous pouvez faire les tests que vous voulez, c'est comme ça.

Edit woop j'avais pas vu que c'est la valeur min qu'on cherche, dans ce cas, pas besoin de 'array_reverse' qui sert à inverser l'ordre du tableau.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 11h10   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
J'ai écrit une stupidité. Merci de ne pas tenir compte de mon précédent message.
La recherche d'une valeur de manière itérative est effectivement la moins complexe algorithmiquement, je sais pas ce que j'avais bu pour écrire ça

Remarque, ça pourrait être intéressant de voir si l'exemple 2, quoique plus complexe est plus rapide du fait de l'optim en PHP.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h56.


 
 
 
 
Partenaires

Hébergement Web