Page 1 sur 1

Comparer valeurs de variables

Posté : 10 juil. 2013, 18:54
par fatalfury
Bonjour,

J'utilise ce script pour comparer les valeurs de variables. Chaque variable utilise un nombre.
Il marche bien, mais est-il possible de l'alléger ?
if($pomme > $poire AND $pomme > $fraise AND $pomme > $kiwi AND $pomme > $banane AND $pomme > $melon AND $pomme > $pasteque) {echo 'Il y a plus de pommes';}

if($poire > $pomme AND $poire > $fraise AND $poire > $kiwi AND $poire > $banane AND $poire > $melon AND $poire > $pasteque) {echo 'Il y a plus de poires';}

if($fraise > $pomme AND $fraise > $poire AND $fraise > $kiwi AND $fraise > $banane AND $fraise > $melon AND $fraise > $pasteque) {echo 'Il y a plus de fraises';}

if($kiwi > $pomme AND $kiwi > $poire AND $kiwi > $fraise AND $kiwi > $banane AND $kiwi > $melon AND $kiwi > $pasteque) {echo 'Il y a plus de kiwis';}

if($banane > $pomme AND $banane > $poire AND $banane > $fraise AND $banane > $kiwi AND  $banane > $melon AND $banane > $pasteque) {echo 'Il y a plus de bananes';}

if($melon > $pomme AND $melon > $poire AND $melon > $fraise AND $melon > $kiwi AND $melon > $banane AND $melon > $pasteque) {echo 'Il y a plus de melons';}

if($pasteque > $poire AND $pasteque > $poire AND $pasteque > $fraise AND $pasteque > $kiwi AND $pasteque > $banane AND $pasteque > $melon) {echo 'Il y a plus de pasteques';}

Re: Comparer valeurs de variables

Posté : 10 juil. 2013, 20:25
par Zahnzao
Salut,

Peut être mettre toute les variables dans un tableau et le trier ?

;)

Re: Comparer valeurs de variables

Posté : 11 juil. 2013, 08:54
par sirakawa
1 parenthéser les expressions booléennes:
if (($pomme > $poire) AND ($pomme > $fraise) AND ($pomme > $kiwi) AND ($pomme > $banane) AND ($pomme > $melon) AND ($pomme > $pasteque)) {echo 'Il y a plus de pommes';}
2 supposons que tu aies un tableau comme ceci:
array(
"pommes" =>12,
"poires"=> "14,
);
tu te sers de sort comme suggéré
soit quand tu constitues le tableau tu as forcément des couples $nom/$valeur
$maximum = 0;
$maximal= "";
$minimum = 99999; //on ne saitjamais ca pourrait servir
$minimal ="";
while (il reste des produits)
{
    if ($valeur > $maximum)
   {
      $maximal = $nom
   }
}

Re: Comparer valeurs de variables

Posté : 11 juil. 2013, 10:46
par dix2
salut,
$fruitMax =
    max(
        array('pomme' => $pomme),
        array('poire' => $poire),
        ...
    );

$nomFruitMax = key($fruitMax);
$qteFruitMax = current($fruitMax);

echo $nomFruitMax . ' = ' . $qteFruitMax;
@+
dix2

Re: Comparer valeurs de variables

Posté : 11 juil. 2013, 11:41
par fatalfury
Ce dernier a l'air simple, mais il ne marche pas.
$fruitMax =
    max(
        array('Pomme' => $pomme),
        array('Poire' => $poire),
        array('Kiwi' => $kiwi),
        array('Banane' => $banane),
        array('Fraise' => $fraise),
        array('Pasteque' => $pasteque),
        array('Melon' => $melon)
    );
$nomFruitMax = key($fruitMax);
$qteFruitMax = current($fruitMax);
echo 'Le max de fruit est : '.$nomFruitMax.' = '.$qteFruitMax;
Il m'affiche tout le temps le dernier fruit du tableau : "Le max de fruit est : Melon = ..."
même quand tous les autres fruits ont une quantité supérieure.

Re: Comparer valeurs de variables

Posté : 11 juil. 2013, 12:03
par dix2
my mistake !

try this :
$pomme = 8;
$poire = 8;
$fraise = 5;

$fruit =
    array(
        'pomme' => $pomme,
        'poire' => $poire,
        'fraise' => $fraise
    );

$nomFruitMax = array_search(max($fruit), $fruit);

echo $nomFruitMax . ' = ' . $fruit[$nomFruitMax];
testé et approuvé !

dix2

Re: Comparer valeurs de variables

Posté : 11 juil. 2013, 18:57
par fatalfury
Oui, ça marche !

Mais au cas où deux fruits dominent en même temps (c'est ton cas avec pomme et poire), comment afficher les deux "fruits max" en même temps ?
Voire 3 en même temps.