Sélectionner un chiffre entre 2 bornes

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par toto2525, 10 Juin 2008.

  1. toto2525
    toto2525 WRInaute occasionnel
    Inscrit:
    20 Septembre 2007
    Messages:
    342
    J'aime reçus:
    0
    Salut,

    J'essaie de sélectionner un chiffre qui soit compris entre 2 bornes d'un tableau array mais j'ai quelques soucis, voici mon code :

    Code:
    $mon_chiffre_test = "125";
    $headers=array('0','1','5','10','20','50','100','200','300','400');
    for($ib=0;$ib<sizeof($headers);$ib++){
    if($headers[$ib]<=$mon_chiffre_test){echo "<b>".$headers[$ib]."</b>";}
    else{echo "".$headers[$ib]."<br>";}
    }
    
    Ca m'affiche ça :

    0
    1
    5
    10
    20
    50
    100

    200
    300
    400

    Comment faire pour obtenir le chiffre 200 qui est inférieur à 125 ?
     
  2. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    >> le chiffre 200 qui est inférieur à 125

    pardon ?
     
  3. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    ya une fonction php de choix aléatoire il me semble
    un truc style array_rand
     
  4. 2dm
    2dm WRInaute discret
    Inscrit:
    3 Septembre 2002
    Messages:
    173
    J'aime reçus:
    0
    Effectivement c'est pas très clair :D

    Tu veux l'indice (ou la valeur) du plus grand nombre inférieur à ta valeur de test ?
     
  5. chtipepere
    chtipepere WRInaute occasionnel
    Inscrit:
    8 Janvier 2004
    Messages:
    428
    J'aime reçus:
    0
    Je m'auto-censure...
    Ca peut peut-être t'aider ça :

    Code:
    <?php
    $mon_chiffre_test = 125; // le chiffre à tester
    $headers = array(0, 1, 5, 10, 20, 50, 100, 200, 300, 400); // les tableau des "bornes"
    for($i=0; $i < sizeof($headers); $i++) // on parcours le tableau
    {
    	if($headers[$i] > $mon_chiffre_test)
    	{
                    // si la borne est plus que grande que le chiffre à tester
    		$borne_haute = $headers[$i]; // on récupère la borne actuelle, celle qui est suprérieur
    		$borne_basse = $headers[$i-1]; // on récupère la borne inférieure
    		echo $mon_chiffre_test.' est compris entre '.$borne_basse.' et '.$borne_haute;
    		break;
    	}
    	elseif($mon_chiffre_test > $headers[$i])
    		echo $mon_chiffre_test.' est plus grand que '.$headers[$i].'<br />';
    } 
    ?>
    Code exécuté :
    125 est plus grand que 0
    125 est plus grand que 1
    125 est plus grand que 5
    125 est plus grand que 10
    125 est plus grand que 20
    125 est plus grand que 50
    125 est plus grand que 100
    125 est compris entre 100 et 200
     
  6. toto2525
    toto2525 WRInaute occasionnel
    Inscrit:
    20 Septembre 2007
    Messages:
    342
    J'aime reçus:
    0
    Ok je n'ai pas été très clair :oops: , je cherche à obtenir le chiffre dans le tableau array qui ne dépasse pas la valeur de ma variable $mon_chiffre_test ?

    Dans le cas ou $mon_chiffre_test = 125 on devrait donc retourner le chiffre 200 car 100 est < à 125 mais 200 est > à 125.

    Avec Mysql il y a BETWEEN qui fait ça mais en php ?
     
  7. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    T'es encore pas très clair

    Donc tu veux obtenir le premier chiffre qui dépasse $mon_chiffre_test = 125 ? Soit 200 !!! Bref fais un gros effort la, parceque tu as essayé d'en faire un mais c'est pas encore ça :mrgreen:
     
  8. 2dm
    2dm WRInaute discret
    Inscrit:
    3 Septembre 2002
    Messages:
    173
    J'aime reçus:
    0
    Apparemment ce qu'il veut c'est juste trouver l'intervalle dans lequel se trouve sa valeur de test.

    Le code de chtipepere va t'aider, mais tu dois faire gaffe aux cas ou ta valeur de test est hors limite (plus petite/grande que ta borne inférieure/supérieure).
     
  9. toto2525
    toto2525 WRInaute occasionnel
    Inscrit:
    20 Septembre 2007
    Messages:
    342
    J'aime reçus:
    0
    Ouais désolé YoyoS mais j'ai un QI très limité :lol:

    En fait si je reformule mon problème je pourrais dire : je cherche la valeur du tableau array (la borne haute) qui soit juste inférieure à $mon_chiffre_test

    Je veux juste la borne haute et pas les autres, dans le cas de $mon_chiffre_test = 125 on aurait en théorie comme résulats les chiffres 200, 300 et 400 mais je veux juste obtenir le premier soit 200 dans ce cas là.
     
  10. 2dm
    2dm WRInaute discret
    Inscrit:
    3 Septembre 2002
    Messages:
    173
    J'aime reçus:
    0
    Nan mais si avec tes valeurs, tu veux que ça te retournes 200, tu dois définir ce que tu cherches par :

    Chtipepere t'as donné une solution quasiment complète.

    Enfin, pour trouver ça dans un tableau trié, ca casse quand même pas 3 pattes à un canard.
     
  11. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    Code:
    unset($result);$mon_chiffre_test = 125;
    $headers=array('0','1','5','10','20','50','100','200','300','400');
    foreach ($headers as $val) if($val>$mon_chiffre_test && !$result) $result=$val;
     
  12. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Donc tu veux obtenir le plus petit domaine : [0;200[ dans lequel 125 se trouve ? :D

    La solution de jeroen convient ?
     
  13. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Avec un Pentium de première génération, ça doit le faire...
    Désolé...
    :arrow:
     
  14. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    Histoire de chipoter, la même solution que jeroen mais avec un break pour éviter les tests et itérations superflus :
    Code:
    $result = NULL;
    $monChiffreTest = 125;
    $headers = array( 0, 1, 5, 10, 20, 50, 100, 200, 300, 400 );
    
    foreach ( $headers as $valeur )
        if( $valeur > $monChiffreTest ) {
            $result = $valeur;
            break;
            }
    
     
  15. toto2525
    toto2525 WRInaute occasionnel
    Inscrit:
    20 Septembre 2007
    Messages:
    342
    J'aime reçus:
    0
    Merci à jeroen pour sa solution qui marche parfaitement et merci aux autres pour leur participation, leur compréhension (à mon égard, je suis un peu neuneu) et pour leur humour, ça permet de moins se prendre la tête, même si je n'ai pas bien compris la réponse de darksword qui nous dit :

    Comment y va faire le caneton pour marcher avec une seule patte :roll:

    Vous aurez ben faire tourner sa seule patte en boucle (une belle boucle while) c'est pas gagné de le faire avancer droit le petit poulet (heu pardon le caneton)...

    Merci à darksword qui a parfaitement formulé la question de mon problème :

    Code:
    je veux la plus petite valeur de mon tableau qui soit supérieure ou égale à ma valeur de test
    Allez grosses bises à vous toutes mes petites cailles.
     
Chargement...
Similar Threads - Sélectionner chiffre bornes Forum Date
Comment selectionner un chiffre mini et maxi d'une base? Développement d'un site Web ou d'une appli mobile 4 Septembre 2008
Sélectionner les 5 plus proches produits Développement d'un site Web ou d'une appli mobile 11 Décembre 2021
Selectionner ligne tableau a partir d'une liste déroulante Développement d'un site Web ou d'une appli mobile 25 Janvier 2017
"Le répertoire racine local n'existe pas, veuillez en sélectionner un autre..."" Développement d'un site Web ou d'une appli mobile 18 Novembre 2016
Sélectionner une partie d'URL avec une RegEx Google Analytics 9 Juillet 2014
CSS : sélectionner les images flottantes Développement d'un site Web ou d'une appli mobile 15 Février 2013
[MySQL] sélectionner la dernière note pour chaque élève en une seule requète ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012
Sélectionner une valeur dans plusieurs listes déroulantes Développement d'un site Web ou d'une appli mobile 8 Avril 2010
selectionner ou deselc. seulement un groupe de checkbox Développement d'un site Web ou d'une appli mobile 13 Novembre 2009
sélectionner un F.A.I AdWords 7 Juillet 2009
selectionner plusieurs tableau en meme temps Développement d'un site Web ou d'une appli mobile 8 Avril 2009
Htaccess : sélectionner le hotlinking autorisé ? Développement d'un site Web ou d'une appli mobile 29 Janvier 2009
Selectionner des "id" dans un ordre choisie? Développement d'un site Web ou d'une appli mobile 4 Décembre 2008
Requete sql, sélectionner un champ vide Développement d'un site Web ou d'une appli mobile 30 Novembre 2008
Comment et ou selectionner les meilleurs annuaires? Annuaires et moteurs 18 Janvier 2008
Tout sélectionner dans une BDD Développement d'un site Web ou d'une appli mobile 11 Mai 2007
sélectionner le contenu d'un calque sous Photoshop CS2 Développement d'un site Web ou d'une appli mobile 7 Juillet 2006
Selectionner un champs non vide dans une base de données Développement d'un site Web ou d'une appli mobile 27 Mars 2006
Page fr & en : faut-il sélectionner la langue préférée ? Débuter en référencement 19 Novembre 2005
Comment sélectionner automatiquement un champ de saisie ? Administration d'un site Web 7 Juin 2003