Renvoyer l'entier le plus proche d'une variable

Résolu
iow4 Messages postés 302 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 2 novembre 2008 - 6 oct. 2006 à 17:31
iow4 Messages postés 302 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 2 novembre 2008 - 6 oct. 2006 à 18:03
Bonjour,

J'ai un array :

<hr size="2" width="100%" />    $num_min = array(32,16,8,4,2,1);
<hr size="2" width="100%" />
Et j'ai une variable $a j'aimerais pouvoir renvoyer la plage de nombre dans lequel ça se situe plus precisement le premier chiffre

exemple pour 20 le chiffre qui m'interesse c'est 16.

J'espere que je suis assez claire
Merci & Bonne prog
A voir également:

8 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 oct. 2006 à 17:52
Hello,

un truc dans le genre ?

<?php
function closerVal ($aTmp, $iCheck) {
    sort ($aTmp, SORT_NUMERIC);
    foreach ($aTmp as $iClef => $iVal) {
        if ($iVal > $iCheck) {
            if (isset ($aTmp[$iClef - 1]) && $aTmp[$iClef - 1] < $iCheck) {
                return $aTmp[$iClef - 1];
            } else {
                return $iVal;
            }
        }
    }
    return end ($aTmp);
}
$num_min = array(32,16,8,4,2,1);
$a = 20;
echo $b = closerVal ($num_min, $a);
?>
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
6 oct. 2006 à 17:35
Pourrais-tu developper un peu plus ton probleme STP ? J'ai pas tout saisie... tu veux renvoyer une suite ou juste un entier ?

@+
iow4 Messages postés 302 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 2 novembre 2008 4
6 oct. 2006 à 17:41
Je veux renvoyer l'entier ( inferieur ) le plus proche de la variable $a
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
6 oct. 2006 à 17:52
Salut!
Est ce que ca marche?

function getMin( $array, $a )
{
    $min = $array[ 0 ];
    $count = count( $array );

    for( $i = 1; $i < $count; $i++ )
       if( $array[$i] > $a && $array[$i] < $min )
          $min = $array[$i];

    return $min;
}

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
iow4 Messages postés 302 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 2 novembre 2008 4
6 oct. 2006 à 17:57
Je te remercie 18466 coockiesch  mais ton code ne marche pas

=58031 malalam  merci de ton code ça marche niquel
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
6 oct. 2006 à 18:01
Tu prend ton tableau, tu fais un sort() dessus, tu le parcours avec un foreach() (histoire de faire simple) et quand tu obtiens une valeur plus grande que ce que tu cherches, tu arretes...

$A = 20;
$NumMin = array(32, 16, 8, 4, 2, 1);
foreach ( $NumMin as $Value )
{
    if ( $Value > $A ) {
       echo'Valeur inferieur la plus proche :', $A, '
';
       break;
    }
}
Remarque que sa te renvoi l'entier inferieur le plus proche. Tu peut ensuite le modifier pour qu'il te renvoi l'entier superieur le plus proche. Ensuite tu les sous-trait un avec ta valeur et tu regardes la valeur la plus petite que tu obtiens, sa sera celle que tu cherches !

@+
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
6 oct. 2006 à 18:01
Arf le temps que j'ecrives, tout le monde a repondu :-(

@+
iow4 Messages postés 302 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 2 novembre 2008 4
6 oct. 2006 à 18:03
Je te remercie quand même
Sympa
Rejoignez-nous