Page 1 sur 1

Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 18:26
par aviso792
Bonjour à tous
Je tourne en rond pour afficher 2 variables les plus petites.
J'arrive avec la fonction min() mais il me faut avec les 2 plus petits

Une idée :idea:
$Min1 = min(array ($result_Coef_HtP, $result_Coef_Dt, $result_Coef_Cp, $result_Coef_Ab, $result_Coef_Org, $result_Coef_Main));
echo("plus petit coef:" .$Min1);

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 19:27
par or 1
trier le tableau et prendre les 2 premières valeurs.
https://www.php.net/manual/fr/function.asort.php

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 21:58
par aviso792
Merci mais je cale sur la récupération des 2 premières valeurs
$Tab=array($result_Coef_HtP, $result_Coef_Dt, $result_Coef_Cp, $result_Coef_Ab, $result_Coef_Org, $result_Coef_Main);
asort($Tab);
foreach ($Tab as $key => $val)
{
echo "$key = $val\n";
}
Mon tableau affiche bien dans l'ordre, mais je dois récupérer les 2 premières valeurs du tableau pour un calcul plus tard.

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 22:02
par two3d
Si tu fais un foreach tu peut itérer une variable (par exemple "$nombre = 0") et t'arrêter quand $nombre == 2

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 22:18
par aviso792
Merci, j'avance moins vite qu'un escargot, mais j'avance.
Reste à m'arrêter aux 2 premieres varibles ?
$Tab=array($result_Coef_HtP, $result_Coef_Dt, $result_Coef_Cp, $result_Coef_Ab, $result_Coef_Org, $result_Coef_Main);
asort($Tab);
foreach( $Tab as $value ) 
  echo $value . '<br />';

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 22:30
par or 1
$Tab[0] et $Tab[1]

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 22:31
par two3d
$i = 0;
foreach($a => $b){
   $i++;
   if($i < 3){
      //tu récupère tes variables
   }
}
Mais le tri via asort me parait plus simple et moins compliqué, tu as essayé ?

La doc est ici : https://www.php.net/manual/fr/

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 23:07
par aviso792
J'ai repris l'idée de or1 mais je n'affiche pas les 2 premiers suivant l'ordre croissant :(
j'affiche les 2 premiers de la liste dans l'ordre d'affichage
$Tab=array($result_Coef_HtP, $result_Coef_Dt, $result_Coef_Cp, $result_Coef_Ab, $result_Coef_Org, $result_Coef_Main);
asort($Tab);
foreach( $Tab as $value ) 

  //echo $value . '<br />'; 
  echo '<br><br>';
  echo $Tab[0] . '<br />';
  echo $Tab[1] . '<br />'; 
Après mon tri croissant par ASORT() je dois récupérer les 2 premieres valeurs pour les mettre en variables pour un calcul mathématique qui suivra

Re: Afficher les 2 variables les plus petites

Posté : 09 déc. 2022, 23:31
par two3d
Ton foreach sert à rien si tu fait un tri

Ton foreach sert à rien car il na pas d'accolade : https://www.php.net/manual/fr/control-s ... oreach.php

https://www.php.net/manual/fr/function.asort.php

Re: Afficher les 2 variables les plus petites

Posté : 11 déc. 2022, 10:14
par aviso792
Avec l'aide de tous j'ai réussi à obtenir ce que je voulais, à savoir récupérer uniquement les 2 variables les plus petites
pour les injecter dans un calcul futur
$Min1 = min(array ($result_Coef_HtP, $result_Coef_Dt));
//echo (($Min1)."\n>");
$Min2 = min(array ($result_Coef_Cp, $result_Coef_Ab));
//echo (($Min2)."\n>");
$Min3 = min(array ($result_Coef_Org, $result_Coef_Main));
//echo (($Min3)."\n>");

$tri = array($Min1,$Min2,$Min3);
    
    sort($tri);
    unset($tri[2]);
    //print_r($tri)."\n-------";
$tri0 = ($tri[0]);
$tri1 = ($tri[1]);

echo $tri0."\n>";
echo $tri1."\n>";
Cela vous parait-il correcte ?

Re: Afficher les 2 variables les plus petites

Posté : 11 déc. 2022, 13:17
par or 1
ça me parait une usine à gaz.
<?php
$Tab=array(2.3, 1.4, 6.3, 7.2, 5.6, 1.9, 7.8, 2.2);
sort($Tab);
echo $Tab[0] . '<br />';
echo $Tab[1] . '<br />'; 
?>

Re: [RESOLU] Afficher les 2 variables les plus petites

Posté : 11 déc. 2022, 18:52
par aviso792
Effectivement !
Le savoir s'accroit inversement proportionnel au nombre de lignes d'un script
Merci

Re: Afficher les 2 variables les plus petites

Posté : 11 déc. 2022, 19:53
par two3d
ça me parait une usine à gaz.
<?php
$Tab=array(2.3, 1.4, 6.3, 7.2, 5.6, 1.9, 7.8, 2.2);
sort($Tab);
echo $Tab[0] . '<br />';
echo $Tab[1] . '<br />'; 
?>
Les fermeture des balises (<br />) ne sont plus nécessaires d'après la validation online, pas besoin de les mettre ;)