Renvoyer l'entier le plus proche d'une variable [Résolu]

iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 6 oct. 2006 à 17:31 - Dernière réponse : iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention
- 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
Afficher la suite 

8 réponses

Répondre au sujet
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 6 oct. 2006 à 17:52
+3
Utile
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);
?>
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de malalam
cs_jean84 450 Messages postés jeudi 26 août 2004Date d'inscription 5 mars 2009 Dernière intervention - 6 oct. 2006 à 17:35
0
Utile
Pourrais-tu developper un peu plus ton probleme STP ? J'ai pas tout saisie... tu veux renvoyer une suite ou juste un entier ?

@+
Commenter la réponse de cs_jean84
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 6 oct. 2006 à 17:41
0
Utile
Je veux renvoyer l'entier ( inferieur ) le plus proche de la variable $a
Commenter la réponse de iow4
coockiesch 2268 Messages postés mercredi 27 novembre 2002Date d'inscription 13 septembre 2013 Dernière intervention - 6 oct. 2006 à 17:52
0
Utile
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???"
Commenter la réponse de coockiesch
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 6 oct. 2006 à 17:57
0
Utile
Je te remercie 18466 coockiesch  mais ton code ne marche pas

=58031 malalam  merci de ton code ça marche niquel
Commenter la réponse de iow4
cs_jean84 450 Messages postés jeudi 26 août 2004Date d'inscription 5 mars 2009 Dernière intervention - 6 oct. 2006 à 18:01
0
Utile
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 !

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

@+
Commenter la réponse de cs_jean84
iow4 303 Messages postés samedi 22 octobre 2005Date d'inscription 2 novembre 2008 Dernière intervention - 6 oct. 2006 à 18:03
0
Utile
Je te remercie quand même
Sympa
Commenter la réponse de iow4

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.