IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

recherche fonction permettant de savoir si une valeur appartient à une intervalle


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut recherche fonction permettant de savoir si une valeur appartient à une intervalle
    Bonjour

    Je recherche une fonction ou un bout de code qui
    me permetra de savoir si une heure est comprise
    dans une intervalle contenue dans un tableau array();

    $tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Array ( [0] => Array ( [0] => 1  [1] => 0,00 [2] => 3,59 ) 
    //        [1] => Array ( [0] => 2  [1] => 4,00 [2] => 7,59 ) 
    //        [2] => Array ( [0] => 3  [1] => 8,00 [2] => 11,59 ) 
    //        [3] => Array ( [0] => 4  [1] => 12,00 [2] => 15,59 ) 
    //        [4] => Array ( [0] => 5  [1] => 16,00 [2] => 19,59 ) 
    //        [5] => Array ( [0] => 6  [1] => 20,00 [2] => 23,59 ))
    j'ai essayé ceci sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $heure=date('G,is');// 15,4159
    $nbr=sizeof($tableau);// 6
    for($i=0;$i<=$nbr;$i++){
       if(($heure>=$tableau[$i][1])&&($heure<=$tableau[$i][2])){
                                                  echo $tableau[$i][0].",";break;
                                                               }
                           }
    //affiche
    1,
    Je n'arrive pas à avoir 4 qui est la réponse juste. Car 15,4159
    est compris entre 12,00 et 15,59 .

    Quelqu'un connait une fonction qui permet de vérifier si l'heure est comprise dans une intervalle contenue dans 2 colonnes d'un tableau ($tableau[$i][1],$tableau[$i][1]).

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je t'ai déjà expliqué qu'un tableau commencant à 0 ne vas pas de 0 à sizeof() mais de 0 à sizeof() -1 ; et qu'il vallait mieux utiliser foreach() pour parcourir un tableau.

    Sinon, le separateur des decimales en PHP, c'est le point, pas la virgule.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Je rajouterai également que l'on peut en php utiliser un tableau associatif ce qui rendrai le code beaucoup plus lisible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array(1,'DEBUT'=>,'FIN'=> )
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $heure[]=date('G.is');
    $i=0;
    foreach($heure as $h){
          if(($h>=$tableau[$i][2])&&($h<$tableau[$i][3])){echo"".$tableau[$i][0]."";}
          else{} 
          $i++;                   
                                 }
    idem j 'ai toujours 1

  5. #5
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Euh....

    Je crois que tu as quelques soucis dans la compréhension de ton algo.

    Que cherches tu à comparer et à quoi.

    Parceque pour moi dans heure tu as un élément ( $heure[] = ... )
    Alors que je pense que tes intervalles sont stockés dans $tableau

    Moi je verrais plutôt ca comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach( $tableau as $interval ){
       if ($heure >= $interval['DEBUT'] && $heure <= $interval['FIN'] ) {
       echo $interval['INDEX'];
       }
    }
    Bien entendu $tableau est configuré comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tableau = array(
         array('INDEX'=>1,'DEBUT'=>0.0,'FIN'=>4.0),
    );
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Enfin de compte ma fonction était bonne. c'etait simplement les valeurs qui ne doivent pas avoir de , mais des points pour être comparer. Sa je ne le savais pas.

    Merci pour les liens pour les fonctions trop cool. J'ai acheter une manuel php 5 en librairie 60 €. Je suis dégoutée il n'y a pas tout dedans, et c'est pauvre en exemple pour débuter.

    Si vous avez d'autres liens pour les listes de fonctions ou de tutorial de code en php je suis preneuse. Cela m'évitera de poster des demandes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [XL-2007] Savoir si une cellule est une formule ou une valeur
    Par Syvolc dans le forum Excel
    Réponses: 3
    Dernier message: 23/06/2014, 14h50
  3. Réponses: 8
    Dernier message: 28/11/2011, 11h40
  4. Réponses: 5
    Dernier message: 18/04/2008, 16h41
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo