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 :

regex sur tableau php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Points : 47
    Points
    47
    Par défaut regex sur tableau php
    Bonjour,

    j’essaie de créer une fonction en php qui prend en paramètre un tableau et qui retourne le nombre de fois qu'une chaîne est présente dans le nom des paramètres.

    ex: Voici le résultat d'un var_dump sur mon tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    array (size=6)
      'choixROLE' => string '1' (length=1)
      'const' => string '0' (length=1)
      'input1VALIDE' => string '50' (length=2)
      'input2VALIDE' => string '90' (length=2)
      'input3VALIDE' => string '0' (length=1)
      'obsROLE' => string '' (length=0)
    je voudrais que ma fonction me retourne le nombre de fois que la chaine "VALIDE" est rencontré dans le nom de mes paramètres, c.a.d ici 3.

    Je sais qu'il faut utiliser les regex mais je ne vois pas comment faire.

    Merci d'avance pour vos réponses.

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Dans ton cas, privilégie la fonction strpos aux expressions régulières :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $nb = 0;
    foreach ($array as $key => $value) {
        if (strpos($key, 'VALIDE') !== false) {
            $nb++;
        }
    }
    echo $nb;
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    ça marche merci!

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Tiens pour le fun j'ai comparé un simple foreach et un array_walk avec une fonction anonyme sur cette problématique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array_walk($tab, function($item,$key) use (&$total){
    	if(strpos($key,'valide') !== false)
                $total++;
    });
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($tab as $key => $value)
    	if(strpos($key,'valide') !== false)
    		$total++;
    Sur un tableau de 100 000 éléments :
    0.58s pour array_walk
    0.08s pour foreach

    Autant dire qu'il faut privilégier foreach si tu as un tableau de taille importante
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Disabled avec checbox sur un tableau PHP
    Par kiradeus dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/05/2010, 13h20
  2. comparaison -tri sur un tableau php
    Par swann_cb dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 24/04/2009, 13h43
  3. Réponses: 15
    Dernier message: 11/05/2007, 15h28
  4. Réponses: 5
    Dernier message: 06/01/2007, 11h09
  5. Réponses: 25
    Dernier message: 16/07/2003, 20h41

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