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 :

Fonction pour recherche


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Fonction pour recherche
    J'ai une fonction qui dois retirer d'un tableau les cellules contenant 2 ou moins de 2 caractère ainsi que les cellules contenant "les" et "des" actuellement j'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function court($array){
    	foreach ($array as $k){
    		if(mb_strlen($k) =< 3)
    			$k = str_replace($k, '', $k);			
    	}
    	$array = array_filter($array)
            return $array;
    }
    Le probleme avec la fonction est que la fonction ne fait aucun changement
    Je vous remercie d'avance pour votre réponse

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 982
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 982
    Par défaut
    Ta fonction ne renvoie pas de tableau modifié pour une raison simple, $k dans ta boucle foreach n'est pas l'élément du tableau mais une copie de celui-ci, donc ton str_replace n'agit que sur cette copie. Pour que ça fonctionne, tu dois utiliser la syntaxe de foreach avec les clefs du tableau et modifier directement le tableau à la clef correspondante.

    Ta question n'ayant pas de rapport avec les bases de données, elle aurait plutôt sa place dans le sous-forum PHP/langage.

  3. #3
    Invité
    Invité(e)
    Par défaut Merci mais
    Je te remercie de ta réponse mais j'ai fait ce que tu m'a dis et ça ne fonctionne toujours pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function court($array){
    	foreach ($array as $k => $v){
    		if(mb_strlen($v) <= 3)
    			$v = str_replace($v, '', $v);							
            }
            $array = array_filter($array);
            return $array;
    }
    Merci d'avance pour vos réponse

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 982
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 982
    Par défaut
    Oui, c'est normal tu modifies toujours $v qui est une copie. C'est $array[$k] (l'original) qu'il faut changer, d'où l'intérêt d'avoir les clefs.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function court($array=[])
    {
    	foreach ($array as $k => $v)
    	{
    		if(mb_strlen($v)<=2 || in_array($v,['les','des']) )
    		{
    			unset($array[$k]); // c'est ici qu'on ne doit pas utiliser $v
    		}
    	}
    	return $array;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $array = ['abcd', 'ef', 'ghi', 'jklm', 'opq', 'rs', 'tuvw', 'xyz'];
    var_dump( court($array) );
    ?>

  6. #6
    Invité
    Invité(e)
    Par défaut Merci
    Merci beaucoup a vous deux pour vos réponses

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

Discussions similaires

  1. [XL-2007] Fonction pour rechercher si j'ai formule dans une ligne de sélection
    Par d.tellier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/06/2016, 22h15
  2. [Langage/Algorithme] Fonction pour rechercher dans une table
    Par dekalima dans le forum C++Builder
    Réponses: 51
    Dernier message: 05/10/2010, 19h27
  3. Fonction pour rechercher un nom précis dans une liste
    Par regimari dans le forum wxPython
    Réponses: 4
    Dernier message: 04/12/2009, 19h59
  4. Réponses: 2
    Dernier message: 16/12/2006, 12h34
  5. Réponses: 17
    Dernier message: 14/02/2006, 00h21

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