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 :

[Tableaux] Comment enlever les elements vide d'un array


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut [Tableaux] Comment enlever les elements vide d'un array
    Bonjour,
    je souhaite pouvoir retirer les élements vides de mon array.
    J'ai un array du type :
    array( '1' = 'plz', '2'=' ', '3'='pom', '4'=' ')
    et je souhaite obtenir
    array ( '1' = 'plz', '2'='pom')

    J'ai trouvé une fonction array_unique qui permet de garder qu'un élement de chaque, mais y a t il une fonction qui permettent d'enlever des champs et et remettre les numéros dans l'ordre.

    D'avance merci

    BernardT

  2. #2
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Pour filtrer tu peux essayer de voir avec cette fonction :
    http://fr2.php.net/manual/fr/function.array-filter.php

    Au feeling comme ça je te dirais que tu peux faire ça :
    array_filter($tonTableau, "empty");
    Ou plutot :
    array_filter($tonTableau, "!empty");
    mais je ne suis pas sur de la syntaxe avec le ! sur une fonction de callback

    Après pour trier ce n'est pas un probleme PHP propose beaucoup de fonctions de tri sur les tableaux comme asort()

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Par défaut
    Salut tu peux peut etre utiliser array_filter()

    Regarde la doc je pense que cela peut répondre a ta question

    http://fr.php.net/manual/fr/function.array-filter.php

    @+
    PoyPoy

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Par défaut
    Mince me suis fait griller au poteau

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    merci ca marche, j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    			function filled($var){
    										return (strlen($var)>1);
    									}
     
    			$tab= array_filter($tab, "filled");
    par contre il me met 0='plz' 4='mlo', j'aimerai pouvoir remettre les indices du genre 0='plz' 1='mlo'

    Y a t il une fonction

  6. #6
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Bizzare que ça te fasse ça.
    Pour inverser clé/valeurs, tu peux essayer ça :
    http://fr2.php.net/manual/fr/function.array-flip.php

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 38
    Par défaut
    Je pense pas qu'une fonction directe puisse remplacer les clés manquantes

    A toi de faire un peu de récursivité pour voir si une clé existe et si ce n'est pas le cas aller chercher la suivante et la remplacer.

    @+
    PoyPoy

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    le flip inverse les clé avec les valeurs. En fait moi je souhaiterai que les clés reprennent un ordre numérique croissant 1,2,3 parce que pour l'instant il omet les valeurs que j'ai supprimé ce qui me donne des clés 1,4, ce qui ne m'arrange pas trop pour effectuer des actions dessus.

  9. #9
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Ah oui j'ai mal lu ce que tu as dit excuse moi...

    Je t'encourage à aller voir dans la doc officielle dans la liste des fonctions array_... si tu trouves ta vie.
    Sinon tu peux essayer de reconstruire ton tableau.
    Tu le parcours et pour chaque element tu l'enregistres dans un autre tableau dont l'indice est un $i qui s'incrémente.

    Il me semble qu'il y a une fonction qui permet de chagner la clé d'une case mais je ne la retrouve plus

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Par défaut
    en fait j'ai juste changé ma facon de parcourir mon array, au lieu de faire un while j'ai fait un foreach, et ca marche a merveille

    Merci à vous

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

Discussions similaires

  1. comment enlever les element vide d'un tableau
    Par Smix007 dans le forum C#
    Réponses: 7
    Dernier message: 22/09/2009, 10h49
  2. [XML Serializer] Comment enlever les propriétés vides ?
    Par BillGates12345 dans le forum EDI/Outils
    Réponses: 5
    Dernier message: 02/08/2006, 10h49
  3. Réponses: 1
    Dernier message: 15/03/2006, 16h58
  4. Réponses: 7
    Dernier message: 14/02/2006, 16h55
  5. [DBGRID] Comment enlever les ascenseurs H et V
    Par kase74 dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/09/2004, 18h33

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