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 :

[PHP5] condition tableau vide


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut [PHP5] condition tableau vide
    Bonjour,

    Je travail sur php 5 et je créer un tableau avec des elements key => value

    je creer un tableau dans un objet nommé mesure

    dans mon objet j'ai une un tableau d'element nommé raison

    et objet peux avoir zero ou plusieurs raisons

    mon souci c'est je fais cela:

    pour récuperer mes raisons concernant mes mesures.

    je fait cela pour supprimer des raisons:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mesure->removeReason()
    et quand je supprime toute mes raisons pour cette mesure je me retrouve avec un tabeau vide: comme suite: par contre quand je ne créer pas de raison au départ c'est complètement vide sans crochet.

    je veux écrire une condition afin de tester si mon tabelau est vide ou pas.

    alors j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    empty($mesure->getRFeason();   // le tableau avec les crochets n'est pas vide
    --
    isset($mesure->getReason();     // ne passe pas sur un tableau
    --
    count($mesure->getReason();  // = 1 element meme vide
    merci pour vos réactions.

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    empty() est vrai sur un tableau vide, sur une variable null ou non défini.
    Donc ça devrait répondre à tous tes cas de figure.

    Peut tu nous donner le résultat d'un var_dump($mesure->getReason()) dans tous les cas possible ?
    Je soupsonne que ton tableau n'en soit pas un une fois que tu pense l'avoir vidé

  3. #3
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut Merci pour ta réaction grunk
    mes mesure sont en json dans ma base de données

    donc je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $decoded = json_decode($mesure->Reason(),true);
    if (!empty($decode)
    {...}
    else
    {...}
    comme cela ca fonctionne

    mais pour continuer je voudrait utlisier implode comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo implode(' | ',$decoded);
    mais j'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array to string conversion
    merci.

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Probablement parce que $decoded est un tableau de tableau et non un tableau simple

  5. #5
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Points : 101
    Points
    101
    Par défaut que faire?
    un foreach dans $decoded et c'est résolu?

    merci

Discussions similaires

  1. [Tableaux] Tableau vide dans implode
    Par bogsy15 dans le forum Langage
    Réponses: 2
    Dernier message: 31/07/2007, 17h36
  2. test sur tableau vide
    Par vince2005 dans le forum Langage
    Réponses: 1
    Dernier message: 11/10/2006, 17h08
  3. [Tableaux] pb implode avec tableau vide
    Par bogsy15 dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2006, 14h39
  4. supprimer lignes/cellules de tableau vides
    Par Drozo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2006, 14h21
  5. UBound et tableau vide
    Par benoit70 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/09/2005, 23h26

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