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

PHP & Base de données Discussion :

Recherche et récupération dans un nombre


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut Recherche et récupération dans un nombre
    Bonjour,

    J'aimerai pouvoir rechercher dans un nombre, un nombre ou un chiffre compris entre deux chiffres, je m'explique :

    Imaginons que ma variable $nombre contienne le nombre 430568063, je veux, en PHP, voir si les chiffres 0 sont dans le nombre, si oui alors récupérer la valeur entre ces 2 chiffres (donc ici la valeur à récuperer est 568).
    J'aimerai faire cela et ce, de la façon la plus rapide pour PHP possible.
    Donc je me demandais, peut être avec des regex pour identifier si les 0 que l'ont recherche sont présents mais ensuite pour récuperer la valeur entre les 0 je sais pas comment faire...

    Merci à vous !

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    As tu essayé un explode ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entre_zero = explode('0', $nombre);
    Théoriquement, ça devrait être le $entre_zero[1] (2ème élément).

    Mais c'est un poil "casse gueule" s'il est possible d'avoir : 1230045678901, soit deux 0 cote à cote.
    De même si ton nombre entre les deux 0 contient des 0 en général.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut
    Oui j'avais pensé a la fonction explode, mais bon j'ai oublié de dire que ce que je recherche peut être de ce type : une variable qui contient le nombre 67654398, et je veux récuperer le nombre entre 7 et 3 ici c'est 654 donc explode ne marcherai pas...

    Merci quand même ^^

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    et si tu nous expliquais ton algo de recherche déjà pour commencer ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut
    Mon algo de recherche ? Bah justement j'en ai pas c'est ce que je cherche ici et je vous demande...
    Ou alors j'ai mal compris ta phrase...

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Comment détermines tu le 7 et le 3 ou le 0 et le 0 ?

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Un substr sur deux str(r)pos ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $string = '67654398';
    $startDigit = '7';
    $endDigit = '3';
     
    $start = strpos($string, $startDigit);
    $end = strrpos($string, $endDigit);
    if ($start !== FALSE && $end !== FALSE) {
        echo substr($string, $start + 1, $end - $start - 1);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $string = '67654398';
    $startDigit = 7;
    $endDigit = 3;
     
    if (preg_match('.(?<=' . $startDigit . ')\d*(?=' . $endDigit . ').', $string, $m)) {
        echo $m[0];
    }

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut
    Exactement ce qu'il me fallait ! C'est parfait !
    Le mieux serait d'utiliser la première solution étant donné qu'elle n'utilise pas les regex non ?

    Merci beaucoup !

Discussions similaires

  1. récupération des résultat de recherche google personnalisé dans un fichier
    Par bouzayani2010 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/04/2010, 14h34
  2. Recherche Virgule dans un nombre décimal
    Par malouxa dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/04/2009, 15h05
  3. Recherche d'une suite de nombre dans un String
    Par Diablo_22 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 11/09/2008, 13h15
  4. Comment rechercher un chiffre dans un nombre ?
    Par christophe_halgand dans le forum MATLAB
    Réponses: 5
    Dernier message: 05/01/2008, 10h52
  5. Réponses: 11
    Dernier message: 18/07/2006, 11h03

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