[PHP] Trier 3 valeurs
Nico
-
Alain42 -
Alain42 -
Bonjour,
je souhaite trier 3 valeurs que je récupère par des sessions :
--------
$_SESSION['val1']
$_SESSION['val2']
$_SESSION['val3']
Ces trois variables contiennent 1 chiffre de 1 à 6.
Je souhaites les classer par ordre décroissant , exemple :
$_SESSION['val1'] = 2
$_SESSION['val2'] = 4
$_SESSION['val3'] = 1
J'affiche 421.
--------
j'ai essayé ceci :
$result[] = $_SESSION['val1'];
$result[] = $_SESSION['val2'];
$result[] = $_SESSION['val3'];
rsort($result);
foreach ($result as $value) {
switch($value) {
case '421':return 421 . "montexte";
default:return $value;
}
}
Cela m'affiche bien le plus grand des 3 chiffres donc "4" mais pas "421"
Quelqu'un a une idée ?
Merci.
je souhaite trier 3 valeurs que je récupère par des sessions :
--------
$_SESSION['val1']
$_SESSION['val2']
$_SESSION['val3']
Ces trois variables contiennent 1 chiffre de 1 à 6.
Je souhaites les classer par ordre décroissant , exemple :
$_SESSION['val1'] = 2
$_SESSION['val2'] = 4
$_SESSION['val3'] = 1
J'affiche 421.
--------
j'ai essayé ceci :
$result[] = $_SESSION['val1'];
$result[] = $_SESSION['val2'];
$result[] = $_SESSION['val3'];
rsort($result);
foreach ($result as $value) {
switch($value) {
case '421':return 421 . "montexte";
default:return $value;
}
}
Cela m'affiche bien le plus grand des 3 chiffres donc "4" mais pas "421"
Quelqu'un a une idée ?
Merci.
Configuration: Windows XP Firefox 2.0.0.9
7 réponses
-
bonsoir
essayes:
$result[] = $_SESSION['val1']; $result[] = $_SESSION['val2']; $result[] = $_SESSION['val3']; rsort($result); $aff=""; foreach ($result as $value) { $aff.=$value; } echo "Resultat: ".$aff; -
bonsoir,
cela ne change rien, il m'affiche toujours 4 au lieu de 421 ..
D'ailleurs je n'ai pas compris quel était l'intérêt de $aff ?
Merci tout de même pour la réponse -
Bonsoir,
Pourtant ça devrait fonctionner
pour voir si l'array est bien chargé avec les valeurs, tu essayes:
$result[] = $_SESSION['val1']; $result[] = $_SESSION['val2']; $result[] = $_SESSION['val3']; // visualisation du contenu de l'array $result pour verifier que tu as bien les valeurs 1 2 4 // tu devrait avoir Array(0=>1 // 1=>2 // 2=>4) echo "<pre>"; print_r($result); echo "</pre>"; // rsort($result); $aff=""; foreach ($result as $value) { $aff.=$value; } echo "Resultat: ".$aff;
la variable $aff permet de concatener les valeurs dans la boucle avant de les afficher par un echo -
Bonjour,
ne change rien .. il m'affiche toujours "4" et non pas "421".
le --- print_r($result); ---- retourne bien mon tableau avec mes 3 valeurs donc ça c'est OK.
Ca doit venir de ma boucle ..
C'est pas grave, je te remercie de ton aide.
j'affiche les nombres non triés tant pis! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
le seul moyen que je vois c'est de faire :
$result = $_SESSION['val1'] . $_SESSION['val2'] . $_SESSION['val3'];
et il faudrait que je fasse un sort($result);
mais il me jette car ce n'est pas un tableau.. -
Bonsoir,
si tu veux que result soit un tableau:
$result = array($_SESSION['val1'] , $_SESSION['val2'] , $_SESSION['val3']);
-
Re bonsoir,
je viens de faire un petit script de test qui marche parfaitement chez moi, essayes le:
<?php $result[] = 1; $result[] = 2; $result[] = 4; echo "<pre>"; print_r($result); echo "</pre><br>"; rsort($result); $aff=""; foreach ($result as $value) { $aff.=$value; } echo "Resultat: ".$aff; ?>